軟件開(kāi)發(fā)技術(shù)論文(2)
軟件開(kāi)發(fā)技術(shù)論文篇二
淺議軟件開(kāi)發(fā)框架技術(shù)
摘要:框架技術(shù)對(duì)于軟件開(kāi)發(fā)來(lái)說(shuō),意義重大,不僅可以簡(jiǎn)化開(kāi)發(fā)流程,更利于后期維護(hù)。本文就軟件開(kāi)發(fā)中的框架技術(shù)進(jìn)行分析,重點(diǎn)探討struts、hibernate、spring以及分層架構(gòu)內(nèi)容。
關(guān)鍵詞:框架技術(shù) 分層架構(gòu) 軟件開(kāi)發(fā)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2012)05-0153-01
1、SSH框架技術(shù)
SSH技術(shù)即struts、hibernate、spring技術(shù)的縮寫(xiě),是當(dāng)前比較流行的開(kāi)源框架技術(shù)。
1.1 struts技術(shù)
Struts這個(gè)名字最初是金屬架的意思。開(kāi)發(fā)者希望通過(guò)Struts這個(gè)框架技術(shù)支持JSP、Servlet、Java,然后在Web系統(tǒng)項(xiàng)目中的使用這門(mén)技術(shù)。
2001年春天,在apache的網(wǎng)站上發(fā)布Struts的第一個(gè)版本的時(shí)候,Struts技術(shù)只提供了一種將視圖和業(yè)務(wù)邏輯分離的Web應(yīng)用方案。當(dāng)Struts這種Web應(yīng)用技術(shù)出現(xiàn)的時(shí)候,每個(gè)開(kāi)發(fā)人員都把它視為一種利器,把自己從繁忙的工作中解脫出來(lái)。所以在2001-2003這兩年的時(shí)間里,大量IT公司在系統(tǒng)開(kāi)發(fā)的過(guò)程中Struts技術(shù)作為框架。
Struts的一大優(yōu)點(diǎn)是它是開(kāi)源軟件[6]。Struts 本質(zhì)是在Model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC架構(gòu),采用的主要技術(shù)是Servlet、JSP和custom tag library用戶自定義標(biāo)記庫(kù)[7]。Struts是運(yùn)用MVC的體系編寫(xiě)的一個(gè)Web應(yīng)用的一個(gè)框架, 可以說(shuō)是一個(gè)傳統(tǒng)MVC設(shè)計(jì)模式的一種改進(jìn)類(lèi)型。
1.2 hibernate技術(shù)
在Java世界里,Hibernate一直是最引人關(guān)注的一個(gè)話題。從Gavin King加入EJB3.0 EG,負(fù)責(zé)制訂EJB3.0的持久層規(guī)范;到Gavin King非正式退出JDO EG,并且充滿個(gè)人情緒的對(duì)JDO2.0規(guī)范進(jìn)行攻擊;到《Hibernate in Action》的發(fā)行;再后來(lái)到Hibernate3 Alpha的發(fā)布;最后再到JBoss 3.0 PR的發(fā)布。Hibernate在短短不到3年的時(shí)間內(nèi),從一個(gè)名不見(jiàn)經(jīng)傳的開(kāi)源軟件發(fā)展成到今天令業(yè)界矚目的主流的O/R Mapping框架技術(shù),在當(dāng)前的Java持久層框架中,最流行的O/R Mapping產(chǎn)品分別是Hibernate,JDO以及TopLink。而Hibernate往往就是項(xiàng)目開(kāi)發(fā)的首選, Hibernate的輕量級(jí)ORM模型逐步確立了在Java對(duì)象關(guān)系映射架構(gòu)中的地位,而且它的許多設(shè)計(jì)還被Java EE標(biāo)注組織吸納成為EJB3.0規(guī)范的標(biāo)準(zhǔn)。
1.3 spring技術(shù)
Spring技術(shù)起源于2000年,它是Rod Johnson通過(guò)一些成功的商業(yè)項(xiàng)目構(gòu)建起來(lái)的基礎(chǔ)框架技術(shù)。在2002,Rod Johnson發(fā)布了《Expert One-on-One J2EE Design and Development》一書(shū),并伴隨著書(shū)的發(fā)布,同時(shí)提供了一個(gè)初步的開(kāi)發(fā)框架技術(shù),interface21開(kāi)發(fā)包,interface21也就是書(shū)中闡述的內(nèi)容的具體實(shí)現(xiàn)。后來(lái),Rod Johnson 在interface21開(kāi)發(fā)包的基礎(chǔ)之上,進(jìn)行了進(jìn)一步的改造和擴(kuò)充,使其發(fā)展為一個(gè)更加開(kāi)放、清晰、全面、高效的開(kāi)發(fā)框架——Spring。2003年2月,Spring框架技術(shù)正式成為一個(gè)開(kāi)源項(xiàng)目,開(kāi)始發(fā)布。Spring是一個(gè)解決了許多在J2EE開(kāi)發(fā)中常見(jiàn)問(wèn)題的強(qiáng)大框架。
2、分層架構(gòu)
分層架構(gòu)具有顯著地特點(diǎn),系統(tǒng)最高級(jí)別的目標(biāo)功能位于最頂層,具體的涉及到跨領(lǐng)域的業(yè)務(wù)功能在中間層,系統(tǒng)配置以及系統(tǒng)環(huán)境位于底層。上一層調(diào)用下一層的數(shù)據(jù),下一層為上一層提供服務(wù)。分層架構(gòu)要遵循一定的原則:(1)可見(jiàn)度原則。每個(gè)系統(tǒng)的依賴關(guān)系只存在以同一級(jí)別的層次或者是下一個(gè)級(jí)別的子系統(tǒng)。(2)易變性原則。易變性原則也適合具體的層次相關(guān)聯(lián)的,越往上的層次越靠近用戶的需求,由于用戶的需求是異變的,因此這一層次的抽象也往往最容易發(fā)生變化,而底層的數(shù)據(jù)庫(kù)連接、環(huán)境配置、硬件驅(qū)動(dòng)等等,這些相對(duì)來(lái)說(shuō)不容易變化的,即使頂層的需求變化,這一部分是向上提供服務(wù)的,相對(duì)不易變化。(3)通用性原則。抽象模型元素一般放在放置在分層架構(gòu)的底層。如果這些不涉及或者是不專(zhuān)注于具體的實(shí)現(xiàn),則可以將這邪惡放在中間層次;(4)層數(shù)。對(duì)已通常的系統(tǒng)來(lái)說(shuō),三層是比較普遍的,對(duì)已特別復(fù)雜的系統(tǒng),要加入層次,隨著層數(shù)的增加,復(fù)雜性也會(huì)增加。
使用分層架構(gòu),有如下幾方面的優(yōu)點(diǎn):(1)每一層的設(shè)計(jì)只關(guān)注本層次。在進(jìn)行系統(tǒng)開(kāi)發(fā)的時(shí)候,業(yè)務(wù)功能的層次只需負(fù)責(zé)具體需求的實(shí)現(xiàn),數(shù)據(jù)庫(kù)持久的層次只關(guān)注與數(shù)據(jù)庫(kù)的連接與管理,不需要對(duì)其他層次進(jìn)行考慮。(2)開(kāi)發(fā)更加方便。在系統(tǒng)開(kāi)發(fā)中,很可能會(huì)遇到功能類(lèi)似的系統(tǒng),那么實(shí)現(xiàn)系統(tǒng)時(shí)這兩個(gè)功能的實(shí)現(xiàn)會(huì)很容易,只需將涉及到功能的名字和變量進(jìn)行替換就可以完成系統(tǒng)功能。(3)降低耦合。分層可以降低系統(tǒng)之間的依賴。例如,web表示層只需要關(guān)注與怎么對(duì)外提供服務(wù),至于中間的業(yè)務(wù)邏輯層是怎樣流轉(zhuǎn)的,數(shù)據(jù)庫(kù)持久層怎么進(jìn)行數(shù)據(jù)提供,都不需要關(guān)心,這樣充分降低了系統(tǒng)之間的耦合。(4)代碼復(fù)用。某一層次的實(shí)現(xiàn),可以像其他很多層次提供服務(wù)。 (5)可以使代碼編寫(xiě)更加整潔,利于標(biāo)準(zhǔn)化工作。
分層架構(gòu)也存在有一些弊端和缺點(diǎn):(1)數(shù)據(jù)級(jí)聯(lián)。封層架構(gòu)可能會(huì)導(dǎo)致修改代碼的時(shí)候,對(duì)某一個(gè)變量的修改,可能涉及到所有的關(guān)系到這個(gè)變量的層次都需要進(jìn)行修改。(2)分層架構(gòu)的層次要適度。對(duì)于系統(tǒng)來(lái)說(shuō),并不是越多的層次對(duì)系統(tǒng)越好,系統(tǒng)越多,系統(tǒng)開(kāi)銷(xiāo)越大,系統(tǒng)負(fù)擔(dān)也越大,系統(tǒng)開(kāi)發(fā)難度也越大,對(duì)已普通的應(yīng)用性系統(tǒng)來(lái)說(shuō),如果需求不是特別多,數(shù)據(jù)量非海量型的,那么三層架構(gòu)已經(jīng)可以實(shí)現(xiàn),對(duì)已數(shù)據(jù)量大,業(yè)務(wù)需求復(fù)雜的系統(tǒng),可以分為4-5個(gè)層次,對(duì)已5層以上的分層不提倡,這樣分層的話,會(huì)使本來(lái)先對(duì)比較簡(jiǎn)單的工作變得復(fù)雜,反而會(huì)不利于系統(tǒng)的開(kāi)發(fā)和后期的維護(hù)工作。
通過(guò)以上幾點(diǎn)分析,分層對(duì)系統(tǒng)來(lái)說(shuō)是有利有弊的,適當(dāng)?shù)姆謱蛹軜?gòu)對(duì)系統(tǒng)很重要,要進(jìn)行權(quán)衡利弊,并不是越多的層次越好,分層的具體要根據(jù)實(shí)際的需求進(jìn)行聯(lián)系,進(jìn)行細(xì)致的分析和考慮,這樣才能使開(kāi)發(fā)更有效率,維護(hù)也更加方便。
參考文獻(xiàn)
[1]李海濤.MVC設(shè)計(jì)模式在JSP開(kāi)發(fā)中的應(yīng)用[J].電腦編程技巧與維護(hù),2011,(10).
看了“軟件開(kāi)發(fā)技術(shù)論文”的人還看:
1.軟件開(kāi)發(fā)技術(shù)研究畢業(yè)論文范文
2.計(jì)算機(jī)軟件開(kāi)發(fā)研究畢業(yè)論文
3.計(jì)算機(jī)軟件開(kāi)發(fā)畢業(yè)論文