北大教授談軟體自動化:只能避免部分瑣碎重複的工作,不會讓程式設計師被時代淘汰
在自動駕駛領域,有著 L1-L5 的等級劃分標準。隨著近年來自動駕駛火熱,這一標準不斷得到驗證,已成為業界共識,也指導著行業發展。人們開始想,其他行業能否對此有所借鑑?
最近,北京大學計算機學院講席教授謝濤提出了他對時下另一火熱行業 —— 低程式碼 / 無程式碼開發的思考。謝濤是最早開展智慧化軟體工程方向的學者之一,早在 2005 年就提出用機器學習提高軟體質量的方法。
他提出軟體的智慧化建立也可相應分為 L1-L5 等級。
低程式碼 / 無程式碼開發為何成為熱點?
今天的低程式碼 / 無程式碼開發行業發展到了哪個標準階段?
下面來聽聽謝濤的看法。
程式設計師不夠用了
據統計,中國有近 300 萬家軟體開發商和 700 萬程式設計師。但在“軟體定義世界”的今天,這個數量還遠遠不夠。
知名 IT 研究機構 Gartner 曾預測,要滿足中國企業的所有數字化轉型場景,需要開發至少 5 億個新的軟體系統。新軟體大多要為製造、物流、電力、農業等傳統行業開發。
這些行業有著各異的需求,也有大量知識上的壁壘,也就是常說的“隔行如隔山”。對於傳統軟體開發商來說,需要紮根到行業多年,才能積累足夠的行業知識背景。
雖然今天軟體工程師、專業開發者的隊伍壯大起來了,但面對迅猛增長的需求,生產效率卻沒有太大的改觀。
軟體開發者對行業需求理解不到位,懂需求的人不懂軟體開發,導致開發的低質、低效。低程式碼 / 無程式碼開發和軟體自動化正是在這一背景下興起。
簡單來說,如果能讓應用需求方自己建立軟體,個性化的需求就能被高效優質地滿足。
低程式碼 / 無程式碼開發、軟體自動化之間又有什麼不同之處?
在謝濤看來,這兩種技術分別面向不同的人群。低程式碼 / 無程式碼開發的使用者懂應用需求,可能懂計算思維,也可能懂程式設計。像在 Excel 裡編寫公式,或現在流行的拖拽式應用搭建工具。
軟體自動化更進一步,使用者只需要懂應用需求,不一定需要懂計算思維,也不一定需要懂程式設計。像是 Excel 裡的快速填充功能,不再需要公式,只需要給出少量示例即可自動完成內容填充。
當前的低程式碼 / 無程式碼開發是軟體開發的現狀,通常對應著 L1(輔助開發)和 L2(部分自動開發)。
回顧整個軟體工程 50 多年的歷史,走過了面向過程開發,到今天的面向物件、面向構件開發。
再往前一步,謝濤認為應當是面向智構件開發。
簡單來說就是“搭積木”,用複用、組裝、整合來進一步提高軟體開發效率。
和以往不同的是這些“積木”(也就是構件)中很多是被智慧化地創建出來的,不需要人手動開發。
另外,一些複用、組裝、整合也被智慧化地自動進行,不需要投入人力。
不過,“搭積木”創建出整個軟體系統的過程中仍然需要有人的參與去做開發,而面向智構件開發就是指導人在這如何去開發的方法學。
這裡面的一個關鍵是從知識驅動、知識密集轉向資料驅動和智慧化手段。
不再需要靠“堆人力”去了解行業背景知識,而是用不斷產生的資料讓智慧化手段越來越強,才能走向 L3 甚至更高階段。
在這些思考基礎上,謝濤對智慧化軟體工程的研究也深入到行業落地階段。
在中國計算機大會(CNCC 2021)軟體自動化技術論壇以及 CCF TF 第 49 期技術研討會上,他剖析了製造型企業數字化升級面臨的問題。
提出用工業網際網路作業系統、智慧製造低程式碼平臺、工業智慧質檢平臺助力製造型企業解決資訊孤島困局。
北大教授
謝濤如今在北京大學計算機學院就職,擔任講席教授。
同時,他還身兼高可信軟體技術教育部重點實驗室(北京大學)副主任,北京大學資訊科技高等研究院資料驅動軟體開發實驗室主任,北京大學新工科建設委員會副祕書長等眾多職務。
他被評為美國科學促進會(AAAS)會士、電氣電子工程師學會(IEEE)會士、美國計算機協會(ACM)傑出科學家、中國計算機學會(CCF)傑出會員。
謝濤最近一次走進大眾的視野,是他在軟體工程國際頂級會議 ASE 2021(自動化軟體工程國際會議)中,斬獲了最有影響力論文(Most Influential Paper Award)。
要知道,這是 ASE 自 1986 年創辦的 35 年以來,該獎項首次被華人學者摘取(除了謝濤外,另外一篇同期獲獎論文的作者包含一位澳大利亞華人學者)。
而謝濤所憑藉的論文,便是他在 2007 年發表的《PARSEWeb:A Programmer Assistant for Reusing Open Source Code on the Web》。
當時的謝濤正在北卡羅來納州立大學擔任助理教授,他和他的學生髮現,程式設計師們在日常工作中經常會重複使用現有的框架或庫。
但在這個過程中,一個問題便逐漸浮現了出來:
程式設計師知道他們需要什麼型別的物件,但不知道如何通過特定的方法序列獲得它們。
即便當時已經有了 Google Code Search 這樣的程式碼搜尋引擎,但要做到有效地去支撐這個程式設計問題,還是欠缺了一些東西。
基於這樣的現狀,謝濤和他的學生就決定“站在巨人肩膀”上開發出大程式碼挖掘基礎設施。
具體而言,在這項研究中,他們提出了一種新方法 ParseWeb,將“源物件型別→目標物件型別”這樣的查詢作為輸入,並建議相關的方法呼叫序列。
這些序列可以作為解決方案,從查詢中給出的源物件中獲得目標物件。
謝濤團隊的工作可以說是最早將大規模的程式碼搜尋、機器學習和資料探勘做了結合,成為大程式碼、軟體大資料重要產業和學術方向的先驅“開荒者”。
這也正是 14 年後能夠被 ASE 評為“最有影響力論文”的原因了。
ParseWeb 的成功,一定程度上也奠定了謝濤在接下來的科研道路上,堅定對軟體自動化的步伐。
而另一個里程碑一樣的事件,發生在了四年後的 2011 年。
當時的謝濤正值學術休假,他利用這段時間來到了微軟亞洲研究院訪問,加入(現為副院長)張冬梅的團隊一起合作。
他們所做的具體內容,叫做軟體解析學(Software Analytics),這個名字是由張冬梅在 2009 年組建團隊時命名,對軟體解析學的定義則是由謝濤和張冬梅的團隊在 2011 年一起合作給出的。
簡單來說,軟體解析學就是研發出一個數據驅動的解決方案,來解決軟體及服務相關的一系列任務,服務廣大軟體產業人員。
他們推動了一系列對產業有著深遠影響的軟體解析學系統,包括 Windows 作業系統的效能除錯、程式碼克隆的檢測,以及現在所謂的智慧化運維等等。
時至今日,軟體解析學已然在軟體工程領域蓬勃發展,成為了非常重要的子領域。
而也正如我們現在看到的,回到北大後的謝濤,依舊發力於軟體自動化相關的工作。
2020 年底,謝濤被授予了科學探索獎,評委會給他的獲獎理由是:肯定他在軟體測試與軟體解析學方面的成績,支援他在資料驅動的軟體自動化方法和技術方面的探索。
那麼接下來,在低程式碼、無程式碼以及軟體自動化這件事上還應該關注或聚焦哪方面的發展呢?
據謝濤介紹,可信度和質量安全需要被高度重視起來。
因為機器,哪怕是用到最先進的深度學習方法,也很難保證做到 100% 的準確率來自動生成滿足需求的軟體。
而當類似低程式碼、無程式碼這樣的方法,交接給沒有計算機背景的企業員工手中,如何保障其在所有環節中不出錯,就成了低程式碼、無程式碼效果好壞的關鍵。
……
最後,也是大家最為關心的一個問題 —— 低程式碼、無程式碼以及軟體自動化的發展,是否會讓程式設計師被時代淘汰?
對此,謝濤直言道:
不用擔心。
首先,軟體自動化在目前以及未來很長一段時間都還會是被侷限於很特定的任務。同時,即便是現在低程式碼、無程式碼蓬勃發展,但依舊是滿足不了數字化大浪潮的需求。
而它們的出現,只是省去程式設計師、工程師一些瑣碎且重複的工作,好讓他們能夠將更多的精力放到更具價值和創新意義的工作中。
參考連結:
[1]https://taoxiease.github.io/publications/ase07-parseweb.pdf
[2]https://taoxiease.github.io/biocn.html