軟件工程原理與實踐(碩士)課件 12 軟件工程新進展_第1頁
軟件工程原理與實踐(碩士)課件 12 軟件工程新進展_第2頁
軟件工程原理與實踐(碩士)課件 12 軟件工程新進展_第3頁
軟件工程原理與實踐(碩士)課件 12 軟件工程新進展_第4頁
軟件工程原理與實踐(碩士)課件 12 軟件工程新進展_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

高級軟件工程

SoftwareEngineering軟件工程新進展02-群體軟件工程01-智能軟件工程03-量子軟件工程202-群體軟件工程01-智能軟件工程AIforSESEforAI03-量子軟件工程3代碼大數(shù)據(jù)4代碼大數(shù)據(jù)的形成引發(fā)了

“利用大模型解決開發(fā)問題”的研究海量高質量代碼求解問題大模型學習5①程序員智能編程軟件開發(fā)技術與工具的智能化趨勢6AI結對編程機器人代碼搜索代碼補全代碼生成代碼翻譯代碼自動摘要缺陷自動修復代碼風格改善……②最終用戶編程(End-UserProgramming)What?End-UserProgrammingcanbedefinedasasetofmethods,techniques,andtoolsthatallowusersofsoftwaresystems,whoareactingasnon-professionalsoftwaredevelopers,atsomepointtocreate,modifyorextendasoftwareartifact.Why?ImpactbillionsofpeopleTakeawaymostofthetediousdetailsFuncrossdisciplineresearchHow?ProgramsynthesisDSL(DomainSpecificLanguage),如Scratch、AppInventorNo-codedevelopment7程序合成(ProgramSynthesis)示例編程(programmingbyexample,example2code)基于輸入輸出樣例的程序合成8X&(1+((x-1)|x))01011->0100000000->

0000001111->

0000000110->

0000001100->

0000001010->

01000搜索9演示編程(programmingbydemo,demo2code)代碼生成工具通過“觀察”最終用戶的操作,將這些操作序例作為最終用戶編的程序,有點類似一個宏錄制器例如回歸測試工具的腳本錄制、機器人的演示編程等DSLMITScratch()一個適合兒童的可視化編程語言10無代碼(no-code)開發(fā)一種最終用戶編程技術。將“系統(tǒng)研發(fā)”封裝成業(yè)務人員能夠理解的自定義配置能力。通過簡單配置方式進行個性化應用開發(fā),滿足簡單場景需求,例如常見的一些用于個人信息收集的輕應用。11/不僅僅是代碼大數(shù)據(jù)......海量的軟件開發(fā)數(shù)據(jù)一個大規(guī)模的軟件系統(tǒng)常常由幾十萬名開發(fā)人員開發(fā),不僅產生幾千萬行以上的代碼、上千的版本版次、幾萬個構件,而且還有大量需求、設計模型、測試用例、缺陷、變更、計劃、任務、以及開發(fā)人員間的討論記錄和郵件列表等。13用AI解決軟件工程問題代碼數(shù)據(jù)需求與評論數(shù)據(jù)運維數(shù)據(jù)機器學習智能編程代碼生成與推薦代碼缺陷靜態(tài)檢測缺陷自動修復智能需求需求分析自動化軟件問題分類排序智能運維故障分析與預測異常檢測系統(tǒng)優(yōu)化NLPIRClassificationClusteringTopicModelingDeepLearningCNNRNNwithAttentionPretrainedLanguageModelTransferLearningReinforcementLearningGAN測試數(shù)據(jù)智能測試自動測試缺陷排序管理與溝通數(shù)據(jù)智能管理軟件估算程序員畫像程序員推薦項目健康度評估14智能管理:程序員畫像基本信息IT工作年限信譽歷史項目數(shù)協(xié)同行為能力特征工作類型行業(yè)領域技能項目經(jīng)驗興趣特征關注的工作類型關注的行業(yè)領域關注的技能關注的項目關鍵字可承接狀態(tài)駐地學歷語言年齡性別經(jīng)驗特征通過對開源軟件社區(qū)和問答社區(qū)的數(shù)據(jù)的分析挖掘,自動對程序員的能力進行評估與建模。在用戶同一認定的基礎上,從標簽中提取編程能力詞條,結合用戶回答問題的數(shù)量和評分,以及開發(fā)項目的數(shù)量和代碼質量,對其各項編程能力進行評價。15三類程序員1602-群體軟件工程01-智能軟件工程AIforSESEforAI03-量子軟件工程17SEforAI:軟件2.0/@karpathy/software-2-0-a64152b37c35“Codewrittenbyanoptimization,commonlyintheformofneuralnetworktraining.”18AI軟件的Bug是什么?以深度學習系統(tǒng)為例19深度學習系統(tǒng)的測試研究方向對抗樣本測試分析和構造特殊(微小改變)樣本使得AI系統(tǒng)失效變異測試自動化注入Bug以評估測試集充分性測試樣本多樣性度量已有測試樣本集合的多樣性,進一步擴增測試樣本蛻變測試采用蛻變關系描述輸入/輸出關系解決測試預言缺失問題GAN生成式對抗網(wǎng)絡生成給定需求的測試20其它軟工問題:公平、性能、產權保護等Client1.reverseengineerAttackerCompany(modelowner)PirateModelreleasemodel2.piratestructurepiracyparameterpiracy客戶端運行AI是趨勢2102-群體軟件工程01-智能軟件工程03-量子軟件工程蜂群筑巢魚群避敵黏菌聚合螞蟻尋食22傳統(tǒng)軟件工程特點精英化計劃性封閉化不足面臨軟件規(guī)模龐大,開發(fā)內容日趨多樣化,技術變更迅速的挑戰(zhàn),表現(xiàn)出:開發(fā)人員不足,開發(fā)進度慢,成本高,缺乏新思想案例:WindowsVista,功能模塊大約6萬個,代碼6千萬行,使用9千名專業(yè)人才,歷時5年完成23新的開發(fā)模式-群體開發(fā)模式軟件生態(tài):群體化、開放性、生長式的開發(fā)模式基于互聯(lián)網(wǎng)的大規(guī)模開發(fā)者群體不斷創(chuàng)新的軟件產品與服務基于個體智慧疊加的社會化生產活動一種基于互聯(lián)網(wǎng)的社會化軟件生產方式在軟件的開發(fā)效率和開發(fā)質量方面展現(xiàn)出顯著的優(yōu)勢對傳統(tǒng)以公司為主體的軟件開發(fā)模式帶來變革性影響24用群體解決超量TopCoder采用競爭性的群體軟件開發(fā)模式,把美國在線委托的通訊后端系統(tǒng)分成52個部分,由開發(fā)社區(qū)招標,共計25萬名開發(fā)人員加入到開發(fā)社區(qū)。傳統(tǒng)軟件工程需要1年完成的事他們5個月就完成了。并且程序中每一千行代碼平均只有0.98個漏洞,遠低于業(yè)內每千行6個的標準。25三種群體開發(fā)形態(tài)基于互聯(lián)網(wǎng)群體智能的軟件開發(fā)目前已經(jīng)在工業(yè)界形成了三種新形態(tài):開源軟件開發(fā)(OpenSourceSoftware)眾包軟件開發(fā)(CrowdsourcingSoftwareDevelopment)應用程序商店(ApplicationStore)26開源軟件生態(tài)27開源軟件的開發(fā)模式迭代開發(fā)與持續(xù)演化用戶創(chuàng)新驅動以代碼為中心的開發(fā)“眾人之眼”的質量保障分布式組織方式松耦合的團隊協(xié)同無障礙的代碼復用28開源貢獻貢獻源代碼撰寫或更新文檔參與討論設計和方案測試軟件發(fā)現(xiàn)和報告問題評審和檢查源代碼提交新的需求幫助解答用戶的問題創(chuàng)建文章和視頻等內容來提升項目的知名度幫助創(chuàng)建興趣社區(qū)等2902-群體軟件工程01-智能軟件工程03-量子軟件工程30量子計算機(quantumcomputer)量子計算機是一類遵循量子力學規(guī)律進行高速數(shù)學和邏輯運算、存儲及處理量子信息的物理裝置。量子計算機在原理上具有超快的并行計算能力,可望通過特定算法在密碼破譯、大數(shù)據(jù)優(yōu)化、天氣預報、材料設計、藥物分析等領域,提供比傳統(tǒng)計算機更強的算力支持。31量子計算機的原理量子比特(qubit)經(jīng)典計算機信息的基本單元是比特,用0與1表示。在量子計算機中,基本信息單位是量子比特,它以兩個邏輯態(tài)的疊加態(tài)的形式存在。態(tài)疊加原理一個體系中,每一種可能的運動方式就被稱作態(tài)。在微觀體系中,量子的運動狀態(tài)無法確定,呈現(xiàn)統(tǒng)計性,與宏觀體系確定的運動狀態(tài)相反。量子態(tài)就是微觀體系的態(tài)。量子糾纏當兩個粒子互相糾纏時,一個粒子的行為會影響另一個粒子的狀態(tài),此現(xiàn)象與距離無關。量子并行原理量子計算機以指數(shù)形式儲存數(shù)字,通過將量子位增至300個量子位就能儲存比宇宙中所有原子還多的數(shù)字,并能同時進行運算。32研究進程1982年,美國著名物理物學家理查德·費曼在一個公開的演講中提出利用量子體系實現(xiàn)通用計算的新奇想法。1985年,英國物理學家大衛(wèi)·杜斯提出了量子圖靈機模型。1994年,AT&T公司的PererShor博士發(fā)現(xiàn)了因子分解的有效量子算法。2007年,加拿大DWave公司成功研制出一臺具有16昆比特的“獵戶星座”量子計算機。2009年11月,美國國家標準技術研究院研制出可處理兩個昆比特數(shù)據(jù)的量子計算機。2015年6月,全球第一家量子計算公司D-Wave宣布其突破了1000量子位的障礙、開發(fā)出了一種新的處理器。2017年3月6日,IBM推出全球首個商業(yè)“通用”量子計算服務。2020年12月4日,中國科學技術大學成功構建76個光子的量子計算原型機“九章”,求解數(shù)學算法高斯玻色取樣只需200秒,而目前世界最快的超級計算機要用6億年。這一突破使中國成為全球第二個實現(xiàn)“量子優(yōu)越性”的國家。33IBMD-Wave九章量子計算機的三個階段發(fā)展第一階段,研制50個到100個量子比特的專用量子計算機,實現(xiàn)“量子優(yōu)越性”里程碑式突破。第二階段,研制可操縱數(shù)百個量子比特的量子模擬機,解決一些超級計算機無法勝任、具有重大實用價值的問題,比如量子化學、新材料設計、優(yōu)化算法等。第三階段,大幅提高量子比特的操縱精度、集成數(shù)量和容錯能力,研制可編程的通用量子計算原型機。35量子編程語言36①匯編層級的量子編程QX模擬器:這個模擬器用來模仿通用量子計算機的行為。它可以讓程序員設計并模仿量子算法。要利用QX模擬器來執(zhí)行算法,程序員需要依照量子匯編語言(QASM)描述算法流程。37②附帶量子庫的經(jīng)典語言Qiskit:2017年由IBM研究會開發(fā)維護的Python量子信息科學工具包。它是最受歡迎、使用最廣泛的量子編程庫。Qiskit受歡迎的原因之一是其活躍繁忙的社區(qū)。你也可以在實際的IBM量子計算機上運行Python代碼。Cirq:這是一個由谷歌開發(fā)的非官方Python庫,測試都在谷歌的量子計算機上進行編寫和運行。Cirq可以用來編寫和模擬量子算法。然而,谷歌不允許其他人使用他們的設備運行代碼。Pyquil:由Rigetti建立的一個Python庫,可使用叫作Quil(同樣由Rigetti開發(fā))的量子指令語言在Rigetti設備上編寫和執(zhí)行量子算法。Quil在語法上與QASM相似。Scaffold:可用來在經(jīng)典設備上編寫和運行量子算法的C++庫。Strange:這是可編寫和運行量子算法的Java應用程序接口。Strange通過傳統(tǒng)的Java分布頻段分布,利用Maven或Gradle簡化其使用。3839③量子編程語言Q#:這是由微軟開發(fā)的量子編程語言,能夠編寫并執(zhí)行量子代碼。這是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論