軟件工程未來發(fā)展趨勢
軟件工程未來發(fā)展趨勢
本文的意圖是討論軟件工程的未來發(fā)展趨勢,但是軟件工程的發(fā)展不可能是孤立的,所以我們首先需要思考一下計算模型和軟件開發(fā)本身的變化和趨勢,再由此推測軟件工程的發(fā)展趨勢。
從計算模型而言,應該來講,傳統(tǒng)的馮.諾依曼仍然被沿用;但從計算能力上來將,我們注意到了三個變化:
●CPU的運算能力按摩爾定律快速提升;但提升單顆CPU的計算能力已經越來越困難;
●并行運算技術以及多核多線程技術使服務器的處理能力飛速提升;服務器的處理能力不再是瓶頸,從而造成計算能力大量向服務器端遷移,C/S結構被無情拋棄,薄客戶端(B/S結構)成為大勢所趨;
●互聯(lián)網的快速普及使得云計算成為可能,通過互聯(lián)網相連的服務器集群在服務器端提供了更強大的計算能力;
基于上述計算能力的變化,從軟件開發(fā)模式而言,我們注意到以下六個相關的趨勢:
●由于計算能力向服務器端的快速集中,提供高并行計算能力和可用性的中間件技術被廣泛采用,甚至已經成為構建大型軟件系統(tǒng)的必選項;
● 因為采用了中間件技術,軟件開發(fā)團隊可以更集中關注于業(yè)務邏輯,而可以將許多細節(jié)交給中間件來管理,從而大大減少了需要編寫的代碼行數(shù),也直接導致了軟件開發(fā)團隊的規(guī)模變得越來越小,但角色變得越來越專業(yè)化(如了解行業(yè)的需求分析員,了解中間件技術和領域構架的架構師等);
●計算能力的增強,使軟件越來越易用,從而使軟件變得無處不在,需要的軟件開發(fā)人員數(shù)量急劇增長(組織形態(tài)是大量的小規(guī)模開發(fā)團隊);在這一因素以及降低成本的壓力下,開發(fā)外包變得非常普及;
●為了使分布在互聯(lián)網上系統(tǒng)能夠互相協(xié)作,SOA成為一個熱點;
●互聯(lián)網的普及,將原來分散開發(fā)人員聚合在一起,只要有一個合適的基礎和好的框架,他們就可以開發(fā)出產品級的工具軟件(以Eclipse,JBoss,MySQL,Subversion為例),從而開源成為了一種趨勢;
●B/S結構的系統(tǒng)非常容易升級,這使得軟件交付和升級的速度大大加快了(從以年月為單位,到以周天為單位);
回到正題,那么在這些大的趨勢的作用下,軟件工程會如何發(fā)展呢?我覺得在未來幾年我們會看到如下的趨勢:
●需求工程,漸成熱點:專業(yè)化的角色,日益復雜的業(yè)務創(chuàng)新,全球分布的團隊以及互聯(lián)網級的交付速度,這些都對需求獲取的正確性和有效性提出了更高的要求;我預計需求工程的研究和實施會成為近期的熱點,其中Use Case技術會被更廣泛而正確的應用,而相關工具的研發(fā)也會成為熱點(如IBM Rational Requirements Composer,,Ravenflow等。
用例的優(yōu)勢在于它天生是黑盒的,它用自然語言抽象了用戶和目標系統(tǒng)的交互,避免了混入分析、設計和實現(xiàn)細節(jié),以保證用例可以被不懂具體技術的業(yè)務及測試人員所真正理解。同時,需求分析員又可以方便地通過用例分析(use case analysis)(即用分析類來試圖在理想方式下實現(xiàn)用例),將需求體系精華成分析模型。在這一過程中,需求分析員可以更進一步地完善基于用例的需求體系,而不必擔心分析模型會污染需求,從而實現(xiàn)需求與分析的分離及有效互動。
●DSSA和MDD,老樹新花(基于領域的構架(DSSA)與模型驅動的開發(fā)(MDD)):隨著軟件應用的日益普及,軟件已經超出了將手動流程自動化的范疇,而開始成為業(yè)務創(chuàng)新的主要推動力。因此,引入捕獲特定領域內最先進需求及其實現(xiàn)架構的DSSA成為行業(yè)客戶的熱點之一。而且,DSSA的引入將MDD門檻大大降低了,也使基于DSSA的MDD支撐工具成為可能,從而可以極大地提高開發(fā)效率并保證軟件質量(例如,Telelogic的Rhapsody就是一個成功的基于實時嵌入式系統(tǒng)構架的MDD工具)。
●迭代/敏捷,漸成標準:隨著軟件交付周期的日益加快,迭代化開發(fā)已經成為大多數(shù)軟件開發(fā)團隊的必選項。但是迭代對整個團隊的需求、架構、協(xié)同及測試能力都提出了更高的要求,現(xiàn)在許多開發(fā)團隊都在試圖導入迭代化開發(fā)的過程中,敏捷可是被看成迭代化開發(fā)的一種導入方式,這不過敏捷的范圍其實比迭代化開發(fā)更大一些。
敏捷的三個要素是迭代開發(fā)、坦誠合作和自適應性。坦誠合作其實才是敏捷的精髓,如Ivar所說,敏捷其實是有關Social Engineering的。敏捷的主要貢獻在于他更多地思考了如何去激發(fā)開發(fā)人員的工作熱情,這是在軟件工程幾十年的發(fā)展過程中相對被忽略的領域。
●持續(xù)集成,蓄勢待發(fā):持續(xù)集成是保證迭代化開發(fā)質量的主要方式,通過持續(xù)集成可以利用自動化的方式來盡量自動地、盡早保證代碼質量。隨著迭代和敏捷的流行,持續(xù)集成相關的工具成為現(xiàn)在市場上的新熱點(如持續(xù)集成框架IBM Rational BuildForge, 開源軟件CruiseControl,代碼靜態(tài)分析工具Klocwork Insight,IBM Rational Software Analyzer等)。
持續(xù)集成是一個復雜的系統(tǒng)工程,組織需要首先將現(xiàn)有的配置管理/變更管理工具與Build環(huán)境緊密集成并完成自動化Build過程,在根據(jù)企業(yè)/項目/產品的現(xiàn)狀,定義如何自動化地檢測軟件質量(代碼靜態(tài)分析、單元測試或冒煙測試),并定義需要自動化生成的管理報表。
●基于實踐的過程框架,方興未艾:開發(fā)角色的專業(yè)化的和分布的全球化都要求軟件開發(fā)過程更加規(guī)范,而敏捷又要求過程必須緊密貼合項目的實際需要,因此傳統(tǒng)的大一統(tǒng)的過程無法符合這一需求。新一代的過程將是以實踐為核心的,項目可以通過組裝所需的不同實踐來獲得貼近項目要求的過程。IJI(Ivar Jacobson International)的EssWork和IBM Rational的RMC都是新一代的基于實踐的過程框架。
依據(jù)過程專家長時間的經驗,他(她)們很小心、很仔細地將一個完整的開發(fā)過程組件化,從開發(fā)過程抽象出一個個可以被單獨導入又可以被組裝到一起的實踐,從而使逐步求精式的過程改進成為可能。對于一個軟件組織而言,如果已經建立一個比較成熟的軟件開發(fā)流程,但覺得這一流程并不適合所有項目的實際需要,那么目前可以考慮的是用實踐的方式去重新梳理現(xiàn)有流程,以使項目組能夠以實踐為單位來組裝出切合項目實際的流程;另外,該組織也可以將適用于本組織的業(yè)界流行的實踐導入到現(xiàn)有流程當中,IJI公司的專家從業(yè)界最佳經驗中抽取了八個實踐,有關信息可訪問(http://www.esslab.net:4040/ngp/)。
●配置管理,昨日黃花:隨著開發(fā)團隊規(guī)模的日益減小,配置管理的復雜性大大降低了,我們注意到越來越多的用戶轉向使用開源的配置管理工具(如Subeverison,JIRA,hosted-projects等等);未來的配置管理工具更多的以一種全生命周期管理平臺(Application Lifecycle Management)的方式出現(xiàn),弱化了單項的配置管理能力而強調了全流程的整合(如Microsoft VisualStudio Team System和IBM Rational Team Concert等)。
即便配置管理的復雜性降低了,但它仍然是開發(fā)項目管理的最重要的支撐平臺之一。目前的重點應該是加強對項目經理進行有關配置管理知識的培訓,讓他(她)們理解到配置管理能力(如并行開發(fā)、基線回退等等)能夠如何幫助項目開發(fā)過程的,從而使配置管理工具/環(huán)境的價值能夠得到充分的發(fā)揮。
作為結語,軟件工程對軟件開發(fā)的重要性我無須贅言了。雖然,我上面列出了一些軟件工程的熱點,但讀者一定要仔細分析組織自身特點以確定軟件工程的改進步驟,扎扎實實的逐步改進,而不應該盲目地追求熱點!
作者:
RDIF
出處:
http://www.rzrgm.cn/huyong/
Email:
406590790@qq.com
QQ:
406590790
微信:
13005007127(同手機號)
框架官網:
http://www.guosisoft.com/
http://www.rdiframework.net/
框架其他博客:
http://blog.csdn.net/chinahuyong
http://www.rzrgm.cn/huyong
國思RDIF開發(fā)框架
,
給用戶和開發(fā)者最佳的.Net框架平臺方案,為企業(yè)快速構建跨平臺、企業(yè)級的應用提供強大支持。
關于作者:系統(tǒng)架構師、信息系統(tǒng)項目管理師、DBA。專注于微軟平臺項目架構、管理和企業(yè)解決方案,多年項目開發(fā)與管理經驗,曾多次組織并開發(fā)多個大型項目,在面向對象、面向服務以及數(shù)據(jù)庫領域有一定的造詣。現(xiàn)主要從事基于
RDIF
框架的技術開發(fā)、咨詢工作,主要服務于金融、醫(yī)療衛(wèi)生、鐵路、電信、物流、物聯(lián)網、制造、零售等行業(yè)。
如有問題或建議,請多多賜教!
本文版權歸作者和CNBLOGS博客共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,如有問題,可以通過微信、郵箱、QQ等聯(lián)系我,非常感謝。

浙公網安備 33010602011771號