軟件工程的第四個十年,變革來臨了嗎?
Jean Bezivin, Nantes大學的名譽教授,在他最新的博客中,回憶了軟件工程過去四十年的歷史,因為他相信顛覆的時刻即將到來。Jean認為軟件工程已經發生了三次巨變:
第一次巨變在1968年10月的Garmisch NATO會議上已經討論過了。復雜系統中所浮現出來的問題迫使我們認識到獨立程序員時代已經結束了,將來的目標是“超過3萬個指令的大型系統,由超過25個程序員在6個月(甚至更長)的時間內完成,并且由多層組織架構的人員來管理。
第二次巨變出現在80年代初期,編程范式從過程式編程到面向對象編程的轉變。
第三次巨變是由2000年11月召開的OMG MDA創始會議所觸發的。
每次巨變都有相同的特征:當我們使用熟悉的經驗和方法來處理行業里的問題時,已經顯得力不從心了。比如說,當面向過程的編程語言不能很好地描述現實世界的境況時,面向對象的編程語言出現了,它能夠保證大型軟件系統的可重用性,并且可以確保軟件架構的穩定性。
現在,Jean Bezivin教授看到了一些可能重新定義軟件工程的因素逐漸浮出水面。比如說“最終用戶也可以是程序員”、軟件工程任務的特化;大量的應用程序能夠快速地搶占市場,我們稱之為應用程序商店(比如說Apple, google等)、技術解決方案層出不窮的多樣性、應用程序能夠在適當成本基礎上追求互操作性的需求、新的技術演進(例如云計算)等。他認為我們正在向一個新的世界邁進:
將來會有大量、飛速演變、相互影響的應用程序。這些應用往往是由不同的程序員使用不同的編程語言來完成的,并且他們往往不會使用傳統的軟件開發周期。每一個應用都會擁有特定的數據模型,狀態模型和事件模型。
為了預測這個革命性時刻的到來,他給出了一個提示:
無論是實踐還是技術變革,變化的總是與語言相關的那些東西,因為軟件工程的實踐與理論核心是語言工程。
最后,他指出了當今編程語言未來可能的發展方向,以此作為總結:
關鍵問題在于專業人員與作為最終用戶的程序員之間的協作,但我們是否需要為最終用戶開發出一套專用的軟件工程實踐?
文本形式的編程語言非常重要,但現在很多可視化的編程語言也漸漸出現了。這些語言提供了抽象語法,同時還帶有各種具體語法,這包括文本形式的,表格形式的和可視化形式的。此類語言并非僅僅由語法來定義,還包括元模型(metamodel),模式(schema)和本體(ontologies)等等。
相對于發明新的編程語言來說,真正的難點在于如何在各種領域特定語言(DSLs)之間建立一種精確,可操作的語義關系,這構成了21世紀全新軟件工程實踐的核心。總之,編程語言之間的互操作性將是相應領域的重要組成部分。
軟件工程的變革是否已經讓我們等待太久了?如果答案是Yes的話,那么它已經開始了嗎?5年后的軟件工程將會是什么樣的?讓我們拭目以待。
查看英文原文:Four Decades of Software Engineering, are Changes Coming?
全站熱搜