1、軟件工程3.0之下的質量與效能朱少民QECon發起人、“軟件工程3.0”定義者目錄01 從軟件工程1.0到軟件工程3.0(SE3.0)02 SE3.0:軟件研發進入數字化時代03 SE3.0 軟件開發新范式04 人機交互智能是SE3.0的常態CONTENTS05 軟件工程3.0宣言從軟件工程1.0到3.0軟件工程(Software Engineering,SE)已走過了55年對軟件開發成本和進度的估計不足,超預算、完成日期一再被推遲的現象屢屢出現不能滿足客戶需求,用戶不滿意缺乏質量保證體系,沒有成熟的開發流程,產品的質量得不到保證軟件不容易被維護,錯誤難以糾正,新功能難以擴充質量事故經常發生
2、上個世紀五、六十年代軟件危機四伏標志性事件:1968年NATO會議會議輸出136頁的軟件工程論述第一次提出Software Engineering 術語本次會議標志著進入 軟件工程1.0(SE1.0)時代(SE)SE1.0:結構化、規范化、標準化、工程化受傳統建筑工程方法影響比較大,重文檔、重流程,典型代表是CMM model:aims to improve existing software development processes但軟件其實不同于硬件硬件研發與生產軟件研發產品是一個物理對象希望批量生產構建/復制成本昂貴構建過程緩慢不容易修改、擴展精確的質量度量產品是數字、抽象的對象希望每
3、個產品都是個性化的構建/復制成本非常便宜構建過程非??烊菀仔薷?、擴展沒有精確的質量度量重新認識軟件開發、交付不斷思考、探索與實踐92Crystal93Refactoring94DSDM95Scrum97FDD99ASDXPPPCI2000events2001Agile ManifestoDSDM:Dynamic Systems Development MethodPP:Pragmatic Programmer敏捷宣言:軟件工程2.0標志性事件http:/www.agilemanifesto.orgSE2.0開發模式:Agile、CI/CD、DevOps團隊協作專注于軟件本身擁抱變化以加快產品交
4、付文化是重點,研發和運維融合,形成閉環云原生、平臺工程等相繼出現持續獲得反饋而改進專注于促進自動化的工具CI/CD效率真的提升了?“快”不代表高效率,多數團隊返工更多了、工作更累了口頭上常提“價值交付、價值流”,交付的東西都有價值嗎?敏捷是銀彈嗎?帶來了曙光GPT-4發布GPT-4發布標志著軟件工程3.0時代的到來因為軟件研發進入真正的數字化時代、開發范式也將發生巨大變化SE3.0:軟件研發進入數字化時代軟件研發平臺開始理解現實世界、理解業務之前各種智慧系統是人工“智能”看似智慧,其實系統不能理解業務,完全是靠人工一點一點做出來的GPT-4發布,意味著:AI 第一次睜開雙眼理解這個世界計算機全
5、面感知、認知這個世界今天GPT能夠理解我們所說的“正好Transformer把這么多知識壓縮在一起,這是它的最大突破”從信息化到數字化:AI扮演著重要角色計算機技術企業業務運行信息化計算機技術企業業務運行數字化初期數字化技術企業業務運行今天的數字化數字化以數據為生產要素,物理世界轉變為可計算、可分析的數據,讓數據在企業系統內自由流動,通過對數據的實時分析和計算提升企業業務,數據價值得以充分發揮大模型促進軟件研發全生命周期的數字化集成測試系統測試交付/部署運維客戶反饋分析大模型單元測試編程設計需求分析與定義問題定義SE3.0軟件開發新范式建立在SE2.0之上,但與過去的開發范式有很大不同“?!迸c
6、“范”模是事物的大致模樣,雖然范不是事物本身,但是它決定了事物的模樣軟件開發范式及其轉換基于工藝(craft)結構的開發范式(paradigms)、基于市場的、基于產品的開發范式;開源軟件范式、分布式開發范式、群智范式軟件開發范式的變化快,常常伴隨著標志性的事件今天大模型能生成UI、代碼、測試腳本等GitHub CEO Thomas Dohmke,直播AI寫代碼:挑戰18分鐘完成一個小游戲。結果只用了不到15分鐘成功上線部署,這邊他還在講臺上,全球網友已經能玩上了。軟件開發新范式:ML-DevOps模型驅動開發、模型驅動運維MLDevOps軟件開發新范式:SaaMSoftware as a M
7、odel:軟件即模型從軟件使用角度看:應用SaaS+SaaM=MaaS(模型即服務)針對特定領域,進行模型的訓練或精調,并給出具體的提示文本(序列)集能幫助企業快速地發布符合市場的產品、獲取用戶、收集反饋并持續改進新范式下的兩條實踐路徑將生成式AI功能引入到通用的開發云平臺之中,實現全新的或重構已有的開發工作流、開發IDE、測試框架與工具、運維工具。重構項目管理、需求管理、代碼管理、測試管理等垂直路徑水平路徑AI+人類共同創造工具:通過文本、語音或圖像提示進行資產(代碼、UI、文檔等)生成的共同創作工具提示工程:AI可以幫助開發者進行語義搜索,幫助開發者找到正確的提示,或在團隊之間分享成功的提
8、示腳本創建新穎的功能、機制:有了生成式AI,開發者可以讓GPT生成創新的功能,并通過一些競爭機制提升代碼或測試的質量。大企業構建自己的大模型,中小企業通過開放API調用,使用大模型服務商(類似今天的云服務商)提供的服務。開發新范式的一些具體實踐案例:Roblox、GitHub Copilot 人機交互智能是SE3.0的常態極大地影響或改變軟件研發工作即使有了AGI,軟件開發還不能全自動 AGI在算術/推理問題、文本生成中缺乏規劃,而且能記住的上下文是有限的 AGI是基于概率做出決策,具有較大的隨機性,甚至會“編造”事實,并進行錯誤的推理 各項業務有一定的特殊性,更大的問題是其復雜性 軟件系統的
9、復雜性也是前所未有的,軟件工程主要目的之一就是解決其復雜性 AGI:Artificial General IntelligenceSE3.0之下的軟件開發基于人機交互,不斷引導大模型、及時糾錯、優化開發過程;研發人員致力于兩頭(定義問題、驗收結果),大模型負責完成中間開發任務問題的表述往往比解決問題更為重要后者可能只是數學或實驗技能這樣的事一步一步、循循善誘人機更深度的交流詳見:又一次被震驚:從生成和細化需求到應用各種方法設計測試用例軟件工程3.0宣言作為軟件工程3.0的展望SE3.0 的效能來源:https:/ 的質量利用GPT生成代碼和單元測試腳本,開發人員更容易、更樂意完成單元測試,而且
10、GPT可為測試人員補全測試場景、測試用例,進行更有效的缺陷檢測、缺陷分析,這一切不僅簡化了測試過程,而且提高了測試覆蓋率,從而顯著提高軟件質量展望:SE3.0 宣言人機交互智能 勝于 研發人員個體能力業務和研發過程數據 勝于 流程和工具可產生代碼的模型 勝于 程序代碼提出好的問題 勝于 解決問題目前軟件工程3.0剛啟動,需要未來幾年的探索與實踐,等待驗證和改進右邊各項有價值,只是左邊更有價值感謝聆聽CSDN全球最大的中文開發者社區平臺CSDN全球最大的中文開發者社區平臺CSDN創立于1999年全球編程類網站排名第7(來源:Similarweb 2023.04)注冊用戶超過4300萬,覆蓋90%的中文開發者新媒體矩陣粉絲數量超過3100萬超過1000家企業客戶和合作伙伴目前公司員工近800名,分布在北京、長沙、上海、深圳、杭州、成都等城市,并在美國硅谷常設辦事處旗下品牌旗下品牌專業中文IT技術社區:CSDN.NET多媒體專業出版:新程序員開發者專屬移動APP:CSDN APP代碼托管協作平臺:GitCode代碼工具協同平臺:InsCodeIT人力資源服務:科銳??怂关俗W絡高校IT技術學習成長平臺:高校俱樂部