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