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