本篇文章給大家談?wù)勡浖_發(fā)的發(fā)展路徑,以及軟件開發(fā)發(fā)展規(guī)劃對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、Java軟件工程師的發(fā)展路徑
- 2、軟件工程的發(fā)展過(guò)程
- 3、軟件開發(fā)的發(fā)展方向?
- 4、.net軟件工程師的發(fā)展路徑
- 5、軟件開發(fā)技術(shù)路線
- 6、軟件開發(fā)過(guò)程一般有幾個(gè)階段?
Java軟件工程師的發(fā)展路徑
Java軟件工程師的未來(lái)發(fā)展方向大致分為兩類:
一是成為管理人員,例如產(chǎn)品研發(fā)經(jīng)理,技術(shù)經(jīng)理,項(xiàng)目經(jīng)理等;
二是繼續(xù)他的技術(shù)工作之路,成為高級(jí)軟件工程師、需求工程師等。 Java語(yǔ)言是一個(gè)面向?qū)ο蟮?。Java語(yǔ)言提供類、接口和繼承等原語(yǔ),為了簡(jiǎn)單起見(jiàn),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語(yǔ)言全面支持動(dòng)態(tài)綁定,而C++ 語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,Java語(yǔ)言是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言。
Java語(yǔ)言是分布式的。Java語(yǔ)言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
Java語(yǔ)言是健壯的。Java的強(qiáng)類型機(jī)制、異常處理、廢料的自動(dòng)收集等是Java程序健壯性的重要保證。對(duì)指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。
Java語(yǔ)言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了Java語(yǔ)言具有的許多安全特性以外,Java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。
Java語(yǔ)言是體系結(jié)構(gòu)中立的。Java程序(后綴為java的文件)在Java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。
Java語(yǔ)言是可移植的。這種可移植性來(lái)源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實(shí)現(xiàn)的,Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的。
Java語(yǔ)言是編譯解釋型的。如前所述,Java程序在Java平臺(tái)上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個(gè)Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中需要的類在聯(lián)接階段被載入到運(yùn)行環(huán)境中。
Java是高性能的。與那些解釋型的高級(jí)腳本語(yǔ)言相比,Java的確是高性能的。事實(shí)上,隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展,Java的運(yùn)行速度可以和優(yōu)化過(guò)的本地代碼相媲美。
Java語(yǔ)言是多線程的。在Java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由Thread類或其子(孫)類來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable) 的構(gòu)造子將一個(gè)實(shí)現(xiàn)了Runnable接口的對(duì)象包裝成一個(gè)線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。值得注意的是Thread類已經(jīng)實(shí)現(xiàn)了Runnable接口,因此,任何一個(gè)線程均有它的run方法,而run方法中包含了線程所要運(yùn)行的代碼。線程的活動(dòng)由一組方法來(lái)控制。Java語(yǔ)言支持多個(gè)線程的同時(shí)執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。
Java語(yǔ)言是動(dòng)態(tài)的。Java語(yǔ)言的設(shè)計(jì)目標(biāo)之一是適應(yīng)于動(dòng)態(tài)變化的環(huán)境。Java程序需要的類能夠動(dòng)態(tài)地被載入到運(yùn)行環(huán)境,也可以通過(guò)網(wǎng)絡(luò)來(lái)載入所需要的類。這也有利于軟件的升級(jí)。另外,Java中的類有一個(gè)運(yùn)行時(shí)刻的表示,能進(jìn)行運(yùn)行時(shí)刻的類型檢查?!ava語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)。
和C/C++的差異 熟悉C語(yǔ)言和C++語(yǔ)言的讀者一定想搞清楚這個(gè)問(wèn)題,實(shí)際上,Java確實(shí)是從C語(yǔ)言和C++語(yǔ)言繼承了許多成份,甚至可以將Java看成是類C語(yǔ)言發(fā)展和衍生的產(chǎn)物。比如Java語(yǔ)言的變量聲明,操作符形式,參數(shù)傳遞,流程控制等方面和C語(yǔ)言,C++語(yǔ)言完全相同.盡管如此,Java和C語(yǔ)言,C++語(yǔ)言又有許多差別,主要表現(xiàn)在如下幾個(gè)方面:
(1) Java中對(duì)內(nèi)存的分配是動(dòng)態(tài)的,它采用面向?qū)ο蟮臋C(jī)制,采用運(yùn)算符new為每個(gè)對(duì)象分配內(nèi)存空間,而且,實(shí)際內(nèi)存還會(huì)隨程序運(yùn)行情況而改變。程序運(yùn)行中 Java系統(tǒng)自動(dòng)對(duì)內(nèi)存進(jìn)行掃描,對(duì)長(zhǎng)期不用的空間作為”垃圾”進(jìn)行收集,使得系統(tǒng)資源得到更充分地利用.按照這種機(jī)制,程序員不必關(guān)注內(nèi)存管理問(wèn)題,這使Java程序的編寫變得簡(jiǎn)單明了,并且避免了由于內(nèi)存管理方面的差錯(cuò)而導(dǎo)致系統(tǒng)出問(wèn)題。而C語(yǔ)言通過(guò)malloc()和free()這兩個(gè)庫(kù)函數(shù)來(lái)分別實(shí)現(xiàn)分配內(nèi)存和釋放內(nèi)存空間的,C++語(yǔ)言中則通過(guò)運(yùn)算符new和delete來(lái)分配和釋放內(nèi)存。在C和C++這種機(jī)制中,程序員必須非常仔細(xì)地處理內(nèi)存的使用問(wèn)題。一方面,如果對(duì)己釋放的內(nèi)存再作釋放或者對(duì)未曾分配的內(nèi)存作釋放,都會(huì)造成死機(jī);而另一方面,如果對(duì)長(zhǎng)期不用的或不再使用的內(nèi)存不釋放,則會(huì)浪費(fèi)系統(tǒng)資源,甚至因此造成資源枯竭。
(2) Java不在所有類之外定義全局變量,而是在某個(gè)類中定義一種公用靜態(tài)的變量來(lái)完成全局變量的功能。 (3) Java不用goto語(yǔ)句,而是用try-catch-finally異常處理語(yǔ)句來(lái)代替goto語(yǔ)句處理出錯(cuò)的功能?!?4) Java不支持頭文件,而C和C++語(yǔ)言中都用頭文件來(lái)定義類的原型,全局變量,庫(kù)函數(shù)等,這種采用頭文件的結(jié)構(gòu)使得系統(tǒng)的運(yùn)行維護(hù)相當(dāng)繁雜。
(5) Java不支持宏定義,而是使用關(guān)鍵字final來(lái)定義常量,在C++中則采用宏定義來(lái)實(shí)現(xiàn)常量定義,這不利于程序的可讀性。
(6) Java對(duì)每種數(shù)據(jù)類型都分配固定長(zhǎng)度。比如,在Java中,int類型總是32位的,而在C和C++中,對(duì)于不同的平臺(tái),同一個(gè)數(shù)據(jù)類型分配不同的字節(jié)數(shù),同樣是int類型,在PC機(jī)中為二字節(jié)即16位,而在VAX-11中,則為32位.這使得C語(yǔ)言造成不可移植性,而Java則具有跨平臺(tái)性(平臺(tái)無(wú)關(guān)性)。
(7) 類型轉(zhuǎn)換不同。在C和C++中,可通過(guò)指針進(jìn)行任意的類型轉(zhuǎn)換,常常帶來(lái)不安全性,而在Java中,運(yùn)行時(shí)系統(tǒng)對(duì)對(duì)象的處理要進(jìn)行類型相容性檢查,以防止不安全的轉(zhuǎn)換。
(8) 結(jié)構(gòu)和聯(lián)合的處理。在C和C++中,結(jié)構(gòu)和聯(lián)合的所有成員均為公有,這就帶來(lái)了安全性問(wèn)題,而在Java中根本就不包含結(jié)構(gòu)和聯(lián)合,所有的內(nèi)容都封裝在類里面。
(9) Java不再使用指針。指針是C和C++中最靈活,也最容易產(chǎn)生錯(cuò)誤的數(shù)據(jù)類型.由指針?biāo)M(jìn)行的內(nèi)存地址操作常會(huì)造成不可預(yù)知的錯(cuò)誤,同時(shí)通過(guò)指針對(duì)某個(gè)內(nèi)存地址進(jìn)行顯式類型轉(zhuǎn)換后,可以訪問(wèn)一個(gè)C++中的私有成員,從而破壞安全性。而Java對(duì)指針進(jìn)行完全地控制,程序員不能直接進(jìn)行任何指針操作。
(10)避免平臺(tái)依賴。Java語(yǔ)言編寫的類庫(kù)可以在其它平臺(tái)的Java應(yīng)用程序中使用,而不像C++語(yǔ)言必須依賴于Windows平臺(tái)。
(11)在B/S開發(fā)方面,Java要遠(yuǎn)遠(yuǎn)優(yōu)于C++。 自從sun被甲骨文收購(gòu)以后,Java的發(fā)展前景就變得撲朔迷離起來(lái),很多程序開發(fā)者都感到很迷惑。2010年4月9日,被稱為Java之父的JamesGosling又在個(gè)人博客上宣布離開Oracle,這一事件更為Java的前景增加了一層迷霧。但是在進(jìn)入5月份之后,一切開始變得明朗起來(lái)。 首先是Oracle在Java的后續(xù)支持方面,宣布了一系列關(guān)于Java的相關(guān)計(jì)劃。然后是Java之父JamesGosling繼聲明Java不會(huì)死去之后又盛贊Oracle對(duì)Java所做的貢獻(xiàn)。在Oracle的活動(dòng)發(fā)布網(wǎng)站上,連續(xù)發(fā)布了多個(gè)關(guān)于Java的推廣活動(dòng)。
版本簡(jiǎn)介
2010年5月12日,Oracle主要產(chǎn)品負(fù)責(zé)人DaveHofert將大談對(duì)JavaSE商業(yè)應(yīng)用的改進(jìn)和革新。根據(jù)宣傳資料,在這次演講中,DaveHofert將提到以下問(wèn)題:
商業(yè)版與社區(qū)版本之間平臺(tái)支持的差異。
如何獲得專家?guī)椭?,以幫助企業(yè)增強(qiáng)其Java應(yīng)用。
對(duì)于舊版本的安全修補(bǔ)問(wèn)題。
可使用的發(fā)布工具和更新。
2010年6月18、19、20、27日,將分別在赫爾辛基、斯圖加特、布達(dá)佩斯、倫敦舉行Oracle、Sun專家與用戶見(jiàn)面會(huì),在見(jiàn)面會(huì)上與用戶一起探討Java的發(fā)展路線。主要討論的問(wèn)題包括Oracle將如何繼續(xù)投資和改進(jìn)Java技術(shù),并且還會(huì)向用戶通報(bào)JavaSE、JavaME專家團(tuán)隊(duì)的最新消息、JavaFX和JDK7最新的消息,以及OracleBerkeley DB的相關(guān)信息。
2010年5月3日,已經(jīng)離開Oracle近一個(gè)月的Java之父JamesGosling在他的博客上表達(dá)了對(duì)NetBeans 6.9 和 FX1.3發(fā)布的關(guān)心。這兩個(gè)項(xiàng)目最新版本的發(fā)布,可以證明Oracle已經(jīng)開始兌現(xiàn)當(dāng)初的承諾。JamesGosling在其早期的博客中,也透露了不會(huì)放棄Java事業(yè),只是需要解決一些與Oracle之間的法律問(wèn)題。
這一切跡象表明,Oracle絕對(duì)不會(huì)輕易放棄Java這塊巨大的蛋糕,并且Oracle也開始逐漸學(xué)會(huì)了對(duì)開源社區(qū)的尊重。首先在JDK的商業(yè)版本方面,Oracle將會(huì)繼續(xù)深入挖掘Java的商業(yè)利益,與其固有產(chǎn)品進(jìn)行更深入的整合。在社區(qū)版本方面,Oracle將與Java開發(fā)者一起探討和研發(fā)Java的技術(shù)。這里需要特別提到的一個(gè)產(chǎn)品是OracleBerkeleyDB,該產(chǎn)品是Oracle一直支持的一個(gè)開源非關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品,在NOSQL大行其道的今天,如果Oracle能夠?qū)erkeleyDB與Java進(jìn)行深入整合,將會(huì)為Java帶來(lái)更多的活力和生命。從JamesGosling的表現(xiàn)來(lái)看,他似乎與Oracle之間已經(jīng)達(dá)成某種諒解,并且有進(jìn)一步合作的可能性。
java發(fā)展
Java在日新月異的IT技術(shù)領(lǐng)域內(nèi)不算年輕,在過(guò)去的十幾年中,Java曾憑借開放和跨平臺(tái)等特性、借助互聯(lián)網(wǎng)蓬勃發(fā)展的東風(fēng),改變了C/C++稱霸天下的局面,形成Java、C、C++三足鼎立的格局。特別是Java在編程語(yǔ)言排名榜上獨(dú)占鰲頭長(zhǎng)達(dá)10年之久,并幫助Sun奠定了其在IT技術(shù)和開源領(lǐng)域的地位,都說(shuō)明Java在開發(fā)領(lǐng)域中的重要性。
在未來(lái)發(fā)展方向上,Java在Web、移動(dòng)設(shè)備以及云計(jì)算方面前景非常廣闊。雖然面對(duì)來(lái)自網(wǎng)絡(luò)的類似于Ruby on Rails這樣編程平臺(tái)的挑戰(zhàn),Java依然還是事實(shí)上的企業(yè)Web開發(fā)標(biāo)準(zhǔn)。在Java對(duì)新開發(fā)者吸引力方面,這么多年以來(lái),Java一直都在面對(duì)那些不成熟的,基于腳本的程序語(yǔ)言的挑戰(zhàn)。比如PHP和Ruby,雖然經(jīng)過(guò)多年努力,但是并沒(méi)有看到他們相具有比Java更強(qiáng)的競(jìng)爭(zhēng)力。另一方面,隨著云計(jì)算以及移動(dòng)領(lǐng)域的擴(kuò)張,更多的企業(yè)在考慮將其應(yīng)用部署在Java平臺(tái)上,無(wú)論是本地主機(jī),公共云,Java都是目前最合適的選擇。
事實(shí)上Java技術(shù)的開放性、安全性和龐大的社會(huì)已有資源,以及其跨平臺(tái)性,即“編寫一次,到處運(yùn)行”的特點(diǎn),也使Java技術(shù)成為智能手機(jī)軟件平臺(tái)的事實(shí)標(biāo)準(zhǔn)。采用Java技術(shù)后,編寫應(yīng)用程序和提供服務(wù)的人就不必關(guān)心接受其服務(wù)的手機(jī)采用的是什么操作系統(tǒng)和芯片,只要按照J(rèn)ava的要求去寫程序就好了;同樣,生產(chǎn)手機(jī)的廠商也不必顧慮將來(lái)誰(shuí)來(lái)提供增值服務(wù)。同時(shí)在Oracle的技術(shù)投資擔(dān)保下,Java也將是企業(yè)在云應(yīng)用方面回避微軟平臺(tái)、在移動(dòng)應(yīng)用方面回避蘋果公司的一個(gè)最佳選擇。比如VMware就宣布了一個(gè)稱為VMforce的服務(wù),該服務(wù)將在云計(jì)算機(jī)中布置Java應(yīng)用,Google應(yīng)用引擎也將一如既往的支持Java。他們都是微軟提供的,基于.Net和開源PHP語(yǔ)言基礎(chǔ)上的Azure云平臺(tái)的競(jìng)爭(zhēng)對(duì)手。此外,進(jìn)軍傳統(tǒng)的桌面應(yīng)用仍是Java未來(lái)一個(gè)努力的方向之一。
JAVA作為主流的商業(yè)應(yīng)用的語(yǔ)言在3G、物聯(lián)網(wǎng)時(shí)代下煥發(fā)出新的生機(jī)!
在互聯(lián)網(wǎng)時(shí)代,JAVA語(yǔ)言已經(jīng)是使用最廣泛的服務(wù)器端語(yǔ)言。隨著3G、互聯(lián)網(wǎng)時(shí)代的到來(lái),JAVA語(yǔ)言并不會(huì)“過(guò)時(shí)”,相反,JAVA語(yǔ)言會(huì)在新的業(yè)務(wù)領(lǐng)域有著更輝煌的發(fā)展前景。
3G、互聯(lián)網(wǎng)的發(fā)展不僅僅帶動(dòng)了“智能手機(jī)制造業(yè)”、“電信運(yùn)營(yíng)業(yè)”、“RFID產(chǎn)業(yè)”、“嵌入式設(shè)備”等硬件或系統(tǒng)軟件行業(yè)的發(fā)展;更重要的是:3G、互聯(lián)網(wǎng)開創(chuàng)了更多、更新的商業(yè)領(lǐng)域應(yīng)用,而這些領(lǐng)域的核心編程語(yǔ)言仍然是JAVA!
在TTS4.0 課程體系中的基于智能手機(jī)平臺(tái)的“航空公司移動(dòng)服務(wù)門戶”項(xiàng)目和基于全球定位、實(shí)時(shí)訂單跟蹤、RFID倉(cāng)儲(chǔ)管理等諸多互聯(lián)網(wǎng)新技術(shù)的“新一代物流管理系統(tǒng)”都是這些新商業(yè)應(yīng)用領(lǐng)域的典型代表。
未來(lái)趨勢(shì)
對(duì)Java來(lái)說(shuō),2010年是不平凡的一年,從Oracle在年初完成對(duì)Sun的收購(gòu),使大家對(duì)Java的未來(lái)充滿了關(guān)注,而12月份在北京進(jìn)行的JavaOne大會(huì),可以說(shuō)是Oracle在收購(gòu)Sun之后的第一次正式大會(huì),大家可以從 JavaOne上更多了解了Java未來(lái)的發(fā)展。而2011年,將成為Java新的開始。
Java走過(guò)了它15年的歷程,在日新月異的IT技術(shù)領(lǐng)域不算年輕,但它一直沒(méi)有停下變革、創(chuàng)新的腳步。Java已經(jīng)不單單是一種計(jì)算機(jī)語(yǔ)言,很多情況下,我們稱它是一個(gè)平臺(tái),一個(gè)社區(qū)。下面從Java SE、Java EE、Java ME、JavaFX幾個(gè)方面,展望Java技術(shù)在2011年的發(fā)展。
Java SE
從Oracle公布的Java未來(lái)戰(zhàn)略我們可以看到,Oracle目標(biāo)是加強(qiáng)和繼續(xù)擴(kuò)大Java在新領(lǐng)域的應(yīng)用,并將Java平臺(tái)納入新的部署架構(gòu),加大對(duì) Java社區(qū)的投資,允許社區(qū)更多地參與。開發(fā)人員比較關(guān)注的Java SE 7將會(huì)在2011年夏天就緒,其中JCP已經(jīng)批準(zhǔn)了JSR 334、JSR 335、JSR 336和JSR 337等,支持改進(jìn)Java語(yǔ)言和API規(guī)范,比如switch in string、multi-catch、泛型實(shí)例創(chuàng)建中的precise rethrow、Lambda表達(dá)式(閉包)等。而Java SE 8也將在SE 7發(fā)布之后的一年到一年半的時(shí)間就緒。
模塊化的VM:可以將VM拆分成小塊由應(yīng)用程序使用,并按需推向Internet,這樣的結(jié)果是Java應(yīng)用程序的啟動(dòng)時(shí)間更短了,當(dāng)VM不在目標(biāo)機(jī)器上時(shí),下載的時(shí)間也更短了。
額外的語(yǔ)言支持:Java平臺(tái)支持用不同語(yǔ)言編寫的應(yīng)用程序,未來(lái)將會(huì)添加更多的語(yǔ)言支持,當(dāng)然也包括對(duì)動(dòng)態(tài)語(yǔ)言的支持,這就是所謂的達(dá)芬奇機(jī)或多語(yǔ)言虛擬機(jī),請(qǐng)參考JSR-292。
增強(qiáng)的多核支持:需要借助工具、庫(kù)和內(nèi)置設(shè)施幫助新的和現(xiàn)有的Java應(yīng)用程序更有效地利用多核硬件的優(yōu)勢(shì),Java的線程模型可以輕松地創(chuàng)建并行執(zhí)行任務(wù)的線程,但你如何將一個(gè)單一的任務(wù)拆分成多片進(jìn)行并行執(zhí)行呢?
其它改進(jìn)包括持續(xù)的性能改進(jìn),以及許多語(yǔ)言方面的增強(qiáng),包括增加的閉包,在switch語(yǔ)句中對(duì)Strings的支持,以及多塊異常捕獲,閉包是一個(gè)有爭(zhēng)議的功能,它是通過(guò)使用匿名的Java內(nèi)部類實(shí)現(xiàn)的。
Java EE
Oracle長(zhǎng)期以來(lái)一直都是Java的支持者,也是最大的JCP成員之一,10多年前就開始參與Java EE規(guī)范的編制,因此對(duì)Oracle成為Java中間件市場(chǎng)的大鱷不應(yīng)該感到意外。
Java EE展望
模塊化,開發(fā)標(biāo)準(zhǔn):Java EE 6通過(guò)配置文件(Profile)定義實(shí)現(xiàn)了模塊化Java EE,允許廠商根據(jù)特定需求創(chuàng)建更小的Java EE堆棧子集,解決成本和Java EE使用復(fù)雜問(wèn)題。通過(guò)模塊化設(shè)計(jì)和定義標(biāo)準(zhǔn),有助于簡(jiǎn)化Java EE,讓它的應(yīng)用領(lǐng)域更廣泛。
Java EE 6規(guī)定了兩種配置文件:Web配置文件(Servlet,JSP和JSF)和Java EE企業(yè)配置文件。顯然還可以定義更多的配置文件種類,例如,為支持會(huì)話初始化協(xié)議(SIP)定義電信服務(wù)器配置文件。
UI和RIA:HTML仍然是Java EE應(yīng)用程序隱含的UI協(xié)議,通常有Java Servlet,JSP和JSF生成,考慮到生產(chǎn)的Web頁(yè)面是靜態(tài)的,可以使用Ajax技術(shù),不過(guò)它已經(jīng)超出了Java EE的范疇。
雖然Oracle沒(méi)有明確這方面的具體計(jì)劃,但未來(lái)Java EE和JavaFX集成時(shí)將會(huì)解決Ajax問(wèn)題。
Java ME
作為 Oracle 首選的移動(dòng)環(huán)境的 Java,這個(gè)堆棧未來(lái)默認(rèn)的呈現(xiàn)方式將會(huì)是 HTML, CSS 和 Javascript。Java ME 將包含 WebKit 引擎,JavaScript. 引擎,和 Java/JavaScript. 橋,換言之,未來(lái)運(yùn)行新版 Java ME 的手機(jī),將能夠訪問(wèn)瀏覽器以外的 Web 服務(wù),而不會(huì)有任何性能問(wèn)題。這些引擎將直接插入 Java ME虛擬機(jī)和插入 Java FX。
Oracle 的 Java ME 引擎,將利用當(dāng)代圖形硬件加速器所擅長(zhǎng)的(60 frames/秒)二維和三維渲染(在 Windows 環(huán)境下,微軟的 Direct X,還有 OpenGL 或未來(lái)“更好”的技術(shù))。 Java ME 將會(huì)針對(duì) ARM7 和 ARM9芯片組進(jìn)行優(yōu)化,包括 Broadcom,三星,NEC,德州儀器,以及其他取得授權(quán)的手機(jī)部件制造商,還將內(nèi)置充分利用手機(jī)裝置的支付,通話,和定位等功能的 API。
JavaFX
隨著 JavaFX 和 Java 的整合,并運(yùn)行于 JVM 之上,它的富媒體處理及二維和三維渲染功能,也將能提供給任何在 JVM 上運(yùn)行的其他編程語(yǔ)言,這意味著,例如 Groovy, Scala 和 JRuby 等也都能用來(lái)整合 JavaFX 的能力。
JavaFX展望:
基于可視化組件創(chuàng)建一個(gè)設(shè)計(jì)范式
為JavaFX應(yīng)用程序創(chuàng)建一個(gè)豐富的UI擴(kuò)展庫(kù)
提升所有平臺(tái)的JavaFX性能
增強(qiáng)跨設(shè)備移植JavaFX應(yīng)用程序的能力
與Java,JavaScript和HTML 5無(wú)縫集成
支持新興設(shè)備和UI范式(如多點(diǎn)觸摸)
軟件工程的發(fā)展過(guò)程
軟件是由計(jì)算機(jī)程序和程序設(shè)計(jì)的概念發(fā)展演化而來(lái)的,是在程序和程序設(shè)計(jì)發(fā)展到一定規(guī)模并且逐步商品化的過(guò)程中形成的。軟件開發(fā)經(jīng)歷了程序設(shè)計(jì)階段、軟件設(shè)計(jì)階段和軟件工程階段的演變過(guò)程。
程序設(shè)計(jì)階段
程序設(shè)計(jì)階段出現(xiàn)在1946年~1955年。此階段的特點(diǎn)是:尚無(wú)軟件的概念,程序設(shè)計(jì)主要圍繞硬件進(jìn)行開發(fā),規(guī)模很小,工具簡(jiǎn)單,無(wú)明確分工(開發(fā)者和用戶),程序設(shè)計(jì)追求節(jié)省空間和編程技巧,無(wú)文檔資料(除程序清單外),主要用于科學(xué)計(jì)算。
軟件設(shè)計(jì)階段
軟件設(shè)計(jì)階段出現(xiàn)在1956年~1970年。此階段的特點(diǎn)是:硬件環(huán)境相對(duì)穩(wěn)定,出現(xiàn)了“軟件作坊”的開發(fā)組織形式。開始廣泛使用產(chǎn)品軟件(可購(gòu)買),從而建立了軟件的概念。隨著計(jì)算機(jī)技術(shù)的發(fā)展和計(jì)算機(jī)應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來(lái)越龐大,高級(jí)編程語(yǔ)言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確的分工,社會(huì)對(duì)軟件的需求量劇增。但軟件開發(fā)技術(shù)沒(méi)有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率底下,從而導(dǎo)致了“軟件危機(jī)”的產(chǎn)生。
軟件工程階段
自1970年起,軟件開發(fā)進(jìn)入了軟件工程階段。由于“軟件危機(jī)”的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件產(chǎn)生進(jìn)入了軟件工程時(shí)代。此階段的特定是:硬件已向巨型化、微型化、網(wǎng)絡(luò)化和智能化四個(gè)方向發(fā)展,數(shù)據(jù)庫(kù)技術(shù)已成熟并廣泛應(yīng)用,第三代、第四代語(yǔ)言出現(xiàn);第一代軟件技術(shù):結(jié)構(gòu)化程序設(shè)計(jì)在數(shù)值計(jì)算領(lǐng)域取得優(yōu)異成績(jī);第二代軟件技術(shù):軟件測(cè)試技術(shù)、方法、原理用于軟件生產(chǎn)過(guò)程;第三代軟件技術(shù):處理需求定義技術(shù)用于軟件需求分析和描述。
(關(guān)于軟件危機(jī)的詳細(xì)介紹可以閱讀參考資料:)
軟件開發(fā)的發(fā)展方向?
軟件開發(fā)的發(fā)展方向有java、web前端、Python、大數(shù)據(jù)、云計(jì)算、UI設(shè)計(jì)、軟件測(cè)試等等方向。不確定自己適合哪個(gè)方向,可以根據(jù)自身的需求,從學(xué)的內(nèi)容,環(huán)境,就業(yè),老師這幾方面級(jí)篩選,然后在上門試聽。親身體驗(yàn)過(guò),心里才有數(shù)。
.net軟件工程師的發(fā)展路徑
經(jīng)過(guò)一段時(shí)間的工作經(jīng)驗(yàn)的積累后,可發(fā)展成為高級(jí)軟件工程師、算法應(yīng)用開發(fā)工程師和需求工程師,但需要具有豐富的軟件開發(fā)經(jīng)驗(yàn)和相關(guān)工作的技術(shù)背景。如果想成為技術(shù)精英、項(xiàng)目經(jīng)理,則還需要具有較強(qiáng)的管理和組織等方面的能力。
.NET軟件工程師一般分為WEB應(yīng)用開發(fā)和桌面程序開發(fā)兩個(gè)方向。WEB應(yīng)用開發(fā)方向?qū)⒅饕獜氖缕髽I(yè)網(wǎng)站系統(tǒng)開發(fā),是目前比較熱門的方向。
軟件開發(fā)技術(shù)路線
應(yīng)用 GIS 系統(tǒng)多種多樣,形式各異,但從開發(fā)實(shí)現(xiàn)的角度考慮,基本上可以概括為三種形式: 獨(dú)立開發(fā)、單純二次開發(fā)、集成二次開發(fā)。
獨(dú)立開發(fā)的優(yōu)點(diǎn)在于無(wú)須依賴任何商業(yè) GIS 工具軟件,這樣一來(lái)不僅減少了開發(fā)成本,而且同樣的算法設(shè)計(jì)與代碼運(yùn)行可以運(yùn)用于以后的類似的應(yīng)用系統(tǒng)開發(fā)中,這樣可以為許多最終用戶節(jié)省購(gòu)買 GIS 工具軟件的費(fèi)用,但進(jìn)行這種方式的開發(fā)一方面要求開發(fā)者具有深厚的計(jì)算機(jī)程序設(shè)計(jì)功底,另一方面對(duì)于大多數(shù)開發(fā)者來(lái)說(shuō),能力、時(shí)間、財(cái)力方面的限制使其開發(fā)出來(lái)的產(chǎn)品很難在功能設(shè)計(jì)和使用上與商業(yè)化 GIS 工具軟件相匹敵,而且在購(gòu)買 GIS 工具軟件上省下來(lái)的錢可能還抵不上開發(fā)者在開發(fā)過(guò)程中絞盡腦汁所花的代價(jià),因此這種開發(fā)方式僅為少數(shù)開發(fā)者使用。
單純二次開發(fā)由于是借助于 GIS 工具軟件提供的宏語(yǔ)言進(jìn)行的,省時(shí)省心,但不管是ArcView 提供的 Avenue,還是 MapInfo 提供的 MapBasic,作為編程語(yǔ)言都只能算是二流的,用它們來(lái)開發(fā)應(yīng)用程序仍不盡如人意,效率低下,且在界面設(shè)計(jì)上相對(duì)單一,難于發(fā)揮開發(fā)者的想象力以及不同 GIS 應(yīng)用的需要。
集成二次開發(fā)既可以充分利用可視化軟件開發(fā)工具的高效方便的編程功能,又可以充分利用地理信息系統(tǒng)工具軟件完備的空間數(shù)據(jù)可視化分析處理功能,集二者之所長(zhǎng),不僅能大大提高應(yīng)用系統(tǒng)的開發(fā)效率,而且使用面向?qū)ο蟮目梢暬浖_發(fā)工具開發(fā)出來(lái)的應(yīng)用程序具有良好的外觀、完善的功能,且可靠性好、便于維護(hù)。尤其是使用 COM 技術(shù)利用 GIS 功能組件進(jìn)行集成開發(fā)更能表現(xiàn)出這些優(yōu)勢(shì)。
綜上所述,集成二次開發(fā)正成為應(yīng)用 GIS 系統(tǒng)開發(fā)的主流方向。GIS 工具軟件一般是有計(jì)算機(jī)專業(yè)技術(shù)人員組成的科研集體完成開發(fā)的,系統(tǒng)的設(shè)計(jì)技術(shù)較高,而實(shí)用 GIS 系統(tǒng)一般是非計(jì)算機(jī)專業(yè)人員開發(fā)、用于特定行業(yè)或特定地區(qū)的軟件系統(tǒng),具有較強(qiáng)的應(yīng)用專業(yè)性或區(qū)域性。從某種意義上來(lái)講,GIS 工具和應(yīng)用 GIS 系統(tǒng)在功能上沒(méi)有本質(zhì)的差別,主要體現(xiàn)在通用性和專用性上,既從通用界面到專用界面,從通用模型到專業(yè)模型。地理信息系統(tǒng)軟件設(shè)計(jì)技術(shù)較高,在應(yīng)用 GIS 系統(tǒng)開發(fā)上重復(fù)開發(fā) GIS 技術(shù)的基礎(chǔ)功能無(wú)疑會(huì)造成人力和財(cái)力的巨大浪費(fèi),而且對(duì)非計(jì)算機(jī)專業(yè)的技術(shù)人員來(lái)講也存在有巨大的難度。在地理信息系統(tǒng)工具上開發(fā)應(yīng)用 GIS 系統(tǒng)無(wú)疑是一條捷徑,不僅可以節(jié)省軟件開發(fā)的人力、物力、財(cái)力,而且也大大縮短了軟件開發(fā)周期,提高了應(yīng)用系統(tǒng)的整體水平。
近幾年來(lái),GIS 工具得到了快速發(fā)展,而且日益成熟,有些軟件已經(jīng)提供了功能強(qiáng)大的二次開發(fā)功能,為迅速建立應(yīng)用 GIS 系統(tǒng)奠定了基礎(chǔ)。任何一個(gè)地理信息系統(tǒng)應(yīng)包括如下幾方面的內(nèi)容: 數(shù)據(jù)輸入、數(shù)據(jù)編輯、數(shù)據(jù)查詢、空間分析模型、信息輸出。在 GIS 工具上進(jìn)行應(yīng)用 GIS 系統(tǒng)的二次開發(fā)主要完成如下幾方面的工作: 專業(yè)化界面開發(fā),使通用GIS 工具轉(zhuǎn)化為專用 GIS 系統(tǒng); 高層次的專業(yè)應(yīng)用模型開發(fā)與模型管理,完成特定行業(yè)要求的空間模型運(yùn)算。
本系統(tǒng)軟件開發(fā)技術(shù)路線為:
( 1) 以 Windows 98 為操作系統(tǒng),以 MapGIS 為 GIS 支撐環(huán)境平臺(tái)。
( 2) 使用 MapGIS 的 API 函數(shù)進(jìn)行二次開發(fā),以 Visual C + + 為開發(fā)編譯工具,重新開發(fā) C + + 類庫(kù),實(shí)現(xiàn)系統(tǒng)界面風(fēng)格上的一致。
( 3) 在系統(tǒng)開發(fā)中要充分利用現(xiàn)有的軟件開發(fā)成果,以縮短系統(tǒng)的開發(fā)周期和可行性,嚴(yán)格按照軟件開發(fā)規(guī)范開展工作。
( 4) 引入成熟的算法與源代碼。
( 5) 注重軟件的測(cè)試工作,將軟件問(wèn)題消滅于萌芽之中。
軟件開發(fā)過(guò)程一般有幾個(gè)階段?
軟件開發(fā)的生命周期一般分為6個(gè)階段:計(jì)劃、需求分析、邏輯設(shè)計(jì)、程序編制、調(diào)試、運(yùn)行和維護(hù)
軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段:
軟件定義階段
制定計(jì)劃:確定總目標(biāo);可行性研究;探討解決方案;制定開發(fā)計(jì)劃。
需求分析:對(duì)待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)的定義。
軟件開發(fā)階段
軟件設(shè)計(jì):分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)部分?
軟件實(shí)現(xiàn):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼
軟件測(cè)試:在設(shè)計(jì)測(cè)試用例的基礎(chǔ)上檢驗(yàn)軟件的各個(gè)組成部分
軟件運(yùn)行維護(hù)階段
軟件投入運(yùn)行,并在使用中不斷地維護(hù),進(jìn)行必要的擴(kuò)充和刪改。
關(guān)于軟件開發(fā)的發(fā)展路徑和軟件開發(fā)發(fā)展規(guī)劃的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。