軟件工程的未來發展趨勢(一)

此文全文已發表在《程序員》雜誌九月號上。


這篇文章的主體是討論軟件工程的未來發展趨勢,但是軟件工程的發展不可能是孤立的,所以我們首先需要思考一下計算模型和軟件開發本身的變化和趨勢,再由此推測軟件工程的發展趨勢。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

從計算模型而言,應該來講,傳統的馮.諾依曼仍然被沿用;但從計算能力上來將,我們注意到了三個變化:

l         CPU的運算能力按摩爾定律快速提升;但提升單顆CPU的計算能力已經越來越困難;

 

l         並行運算技術以及多核多線程技術使服務器的處理能力飛速提升;服務器的處理能力不再是瓶頸,從而造成計算能力大量向服務器端遷移,C/S結構被無情拋棄,薄客戶端(B/S結構)成爲大勢所趨;

 

l         互聯網的快速普及使得雲計算成爲可能,通過互聯網相連的服務器集羣在服務器端提供了更強大的計算能力;

                    

基於上述計算能力的變化,從軟件開發模式而言,我們注意到以下六個相關的趨勢:

l         由於計算能力向服務器端的快速集中,提供高並行計算能力和可用性的中間件技術被廣泛採用,甚至已經成爲構建大型軟件系統的必選項;

 

l         因爲採用了中間件技術,軟件開發團隊可以更集中關注於業務邏輯,而可以將許多細節交給中間件來管理,從而大大減少了需要編寫的代碼行數,也直接導致了軟件開發團隊的規模變得越來越小,但角色變得越來越專業化(如瞭解行業的需求分析員,瞭解中間件技術和領域構架的架構師等);

 

l         計算能力的增強,使軟件越來越易用,從而使軟件變得無處不在,需要的軟件開發人員數量急劇增長(組織形態是大量的小規模開發團隊);在這一因素以及降低成本的壓力下,開發外包變得非常普及

 

l         爲了使分佈在互聯網上系統能夠互相協作,SOA成爲一個熱點

 

l         互聯網的普及,將原來分散開發人員聚合在一起,只要有一個合適的基礎和好的框架,他們就可以開發出產品級的工具軟件(以EclipseJBossMySQLSubversion爲例),從而開源成爲了一種趨勢

 

l         B/S結構的系統非常容易升級,這使得軟件交付和升級的速度大大加快了(從以年月爲單位,到以周天爲單位);

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章