現(xiàn)代軟件工程(在線實(shí)訓(xùn)版)課件 0 課程概述及學(xué)習(xí)要求;Git介紹及使用_第1頁
現(xiàn)代軟件工程(在線實(shí)訓(xùn)版)課件 0 課程概述及學(xué)習(xí)要求;Git介紹及使用_第2頁
現(xiàn)代軟件工程(在線實(shí)訓(xùn)版)課件 0 課程概述及學(xué)習(xí)要求;Git介紹及使用_第3頁
現(xiàn)代軟件工程(在線實(shí)訓(xùn)版)課件 0 課程概述及學(xué)習(xí)要求;Git介紹及使用_第4頁
現(xiàn)代軟件工程(在線實(shí)訓(xùn)版)課件 0 課程概述及學(xué)習(xí)要求;Git介紹及使用_第5頁
已閱讀5頁,還剩91頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

課程概述及學(xué)習(xí)要求內(nèi)容課程的時(shí)代背景軟件定義一切的時(shí)代當(dāng)前軟件系統(tǒng)的特點(diǎn)課程特點(diǎn)和要求課程特點(diǎn)和學(xué)習(xí)要求教學(xué)目標(biāo)和授課內(nèi)容課程的考核方式課程考核要求和方法課程教學(xué)的支撐平臺1.1軟件不可或缺信息系統(tǒng)組成微電子芯片、計(jì)算機(jī)硬件與體系結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò)與通訊計(jì)算(速度)、存儲(容量)、傳輸(帶寬和速率)計(jì)算機(jī)軟件處理數(shù)據(jù)、實(shí)現(xiàn)功能、提供服務(wù)軟件所扮演的角色不可或缺、核心和關(guān)鍵的要素沒有軟件的手機(jī)和PC會怎樣?如果你的計(jì)算機(jī)、手機(jī)和Pad上沒有軟件會怎樣?軟件的關(guān)鍵性和重要性軟件對一個(gè)國家的全球競爭力、創(chuàng)新和國家安全至關(guān)重要世界運(yùn)行在軟件之上,軟件是國家的關(guān)鍵基礎(chǔ)設(shè)施軟件賦能能力創(chuàng)新軟件是安全攸關(guān)系統(tǒng)的脊梁軟件是生態(tài)系統(tǒng)重要組成部分軟件定義一切時(shí)代的特點(diǎn)地位:無處不在的軟件形態(tài):人機(jī)物三元融合的軟件復(fù)雜:大規(guī)模、持續(xù)演化的軟件開發(fā)數(shù)量越來越多交付速度越來越快質(zhì)量要求越來越高運(yùn)維能力越來越強(qiáng)滲透到社會經(jīng)濟(jì)文化生活各行各業(yè),從工業(yè)生產(chǎn)到國防科技,從衣食住行到娛樂軟件滲透到了哪些領(lǐng)域?是否有領(lǐng)域沒有軟件?軟件的持續(xù)創(chuàng)新和積累至今人們已經(jīng)開發(fā)出了數(shù)量龐大的軟件系統(tǒng)操作系統(tǒng)Linux、Ubuntu、麒麟、鴻蒙、OpenEuler等數(shù)據(jù)庫系統(tǒng)MySQL、PostgreSQL、MongoDB、Redis等開發(fā)平臺Eclipse、Junit、SonarQube、Kubernetes等人工智能Tensorflow、Opencv、Caffe、Deeplearning4j等網(wǎng)絡(luò)安全Nmap、curityOnion、Suricata、Bro等開源50年積累的代碼總量約100TB,而人類5000年文字藏書總量約23TB軟件是一種創(chuàng)新形式和賦能工具社會交流軟件推動(dòng)了各個(gè)行業(yè)的變革和發(fā)展,改變了世界軟件體現(xiàn)了基于數(shù)字化技術(shù)解決問題的方式支付方式火車購票軟件帶來的深刻影響交通出行12306、攜程等代替排隊(duì)等候資料查詢G和B代替調(diào)研在線教育MOOC和騰訊會議代替課堂教學(xué)網(wǎng)上購物淘寶、京東代替逛商場辦公方式Word和PPT代替手寫和幻燈片支付手段微信、支付寶代替紙幣和支票軟件給你的學(xué)習(xí)、生活和娛樂等帶來什么樣的影響?沒有軟件你會怎樣?軟件是軍事裝備和信息系統(tǒng)的核心信息化武器裝備中的嵌入式軟件業(yè)務(wù)信息支援系統(tǒng)中的軟件各類參戰(zhàn)人員作戰(zhàn)部隊(duì)指揮控制系統(tǒng)中的軟件大型復(fù)雜軟件系統(tǒng)部署在各類平臺和終端提供多樣化功能和服務(wù)連接裝備和人員形成體系和能力成為關(guān)鍵基礎(chǔ)設(shè)施越來越多的軟件表現(xiàn)為人-機(jī)-物共生的一類復(fù)雜系統(tǒng)示例:機(jī)器人是一類由軟件驅(qū)動(dòng)的物理系統(tǒng)機(jī)器人是由軟件驅(qū)動(dòng)、由軟件來定義的軟件密集型信息物理系統(tǒng)負(fù)責(zé)底層管理和控制、高層規(guī)劃和決策、全局適應(yīng)和優(yōu)化等軟件是整個(gè)系統(tǒng)的核心和關(guān)鍵高層任務(wù)軟件系統(tǒng)物理和社會環(huán)境決策產(chǎn)生決策產(chǎn)生規(guī)劃和行為作用與影響感知與反饋閉環(huán)自主機(jī)器人系統(tǒng)控制運(yùn)行物理設(shè)備示例:軟件在武器裝備中的地位和作用80%的裝備功能由軟件來實(shí)現(xiàn)軟件密集型系統(tǒng)的數(shù)量不斷增長計(jì)算機(jī)軟件在美軍裝備中的比例以及軍用軟件的規(guī)模DavidF.Rico,PMP,ACP,CSM,Lean&AgileSoftwareMethods,2012.由軟件實(shí)現(xiàn)的裝備功能軟件的規(guī)模(百萬代碼行)思考和討論個(gè)人計(jì)算機(jī)你的設(shè)備安裝了哪些軟件?它們提供哪些功能和服務(wù)?手機(jī)iPad哪些行業(yè)和領(lǐng)域需要軟件?它們提供哪些功能和服務(wù)?1.2軟件形態(tài)變化不是單一孤立的系統(tǒng),而是系統(tǒng)之系統(tǒng)諸多系統(tǒng)聯(lián)盟和組合而成不是純粹技術(shù)系統(tǒng),而是社會技術(shù)系統(tǒng)社會、信息、物理等要素共存不是同構(gòu)系統(tǒng),而是異構(gòu)多樣系統(tǒng)聯(lián)盟要素異構(gòu),客觀存在,也是必然不是封閉系統(tǒng),而是動(dòng)態(tài)適應(yīng)和持續(xù)演化系統(tǒng)要素、關(guān)系、聯(lián)盟等持續(xù)變化,邊界不明確IanSommerville,etc.,Large-ScaleComplexITSystem,CommunicationofACM,2012.1.3軟件的規(guī)模和復(fù)雜性日趨增長社會保障信息系統(tǒng)金融系統(tǒng)智能交通控制指揮控制系統(tǒng)智能電力系統(tǒng)大規(guī)模協(xié)作系統(tǒng)功能數(shù)據(jù)實(shí)體代碼量接入人員連接設(shè)備運(yùn)行進(jìn)程……示例:軟件規(guī)模的快速增長1960sF-117飛機(jī)程序10萬行1970sP-3C飛機(jī)程序50萬行1980sB-1B飛機(jī)程序100萬行E-3A飛機(jī)程序100萬行空間站發(fā)射程序約8000萬行現(xiàn)代化作戰(zhàn)飛機(jī)約2500萬行宙斯盾驅(qū)逐艦約需5000萬行現(xiàn)代汽車中有數(shù)億行的軟件越來越多的設(shè)備由軟件加以定義,如軟件定義的汽車軟件變得越來越復(fù)雜軟件環(huán)境的復(fù)雜性軟件表現(xiàn)為人機(jī)物三元融合復(fù)雜系統(tǒng)軟件需要與物理環(huán)境、社會環(huán)境等進(jìn)行持續(xù)交互軟件所在的環(huán)境開放、動(dòng)態(tài)、不確定和不可預(yù)測軟件規(guī)模帶來的復(fù)雜性大量的軟件實(shí)體、數(shù)據(jù)、交互、進(jìn)程等帶來的復(fù)雜性軟件需求的復(fù)雜性軟件需求不可知、不確定和動(dòng)態(tài)變化軟件運(yùn)維的復(fù)雜性軟件需要在使用的同時(shí)持續(xù)演化12306軟件、智能交通控制軟件等就是一類復(fù)雜軟件系統(tǒng),具有上述復(fù)雜性特征大規(guī)模和復(fù)雜軟件帶來的挑戰(zhàn)?用戶方、學(xué)術(shù)界、產(chǎn)業(yè)界共同面臨的問題和挑戰(zhàn)!軟件復(fù)雜性表現(xiàn)在哪些方面?如何來開發(fā)復(fù)雜的軟件系統(tǒng)?需要哪些方面的知識和技能?1.4美國對軟件及軟件工程的認(rèn)識從軟件到軟件工程超大規(guī)模軟件未來軟件挑戰(zhàn),CMU,2006軟件定義戰(zhàn)爭,CSIS,

2022構(gòu)筑未來軟件工程CMU,2021軟件現(xiàn)代化戰(zhàn)略DoD,2022認(rèn)識到軟件變得越來越重要、越來越復(fù)雜和難控,需要尋求有效的軟件工程美國政府對軟件的認(rèn)識美國總統(tǒng)信息技術(shù)顧問委員會軟件是最迫切的需求,因?yàn)椋簩浖男枨螅撼隽宋覀儸F(xiàn)有的開發(fā)能力;現(xiàn)有軟件是脆弱、不可靠,且很難進(jìn)行設(shè)計(jì)、測試、維護(hù)和升級所以:軟件是當(dāng)前社會核心產(chǎn)品與核心問題應(yīng)絕對優(yōu)先發(fā)展超大規(guī)模軟件未來軟件挑戰(zhàn),CMU,2006美國軍方對軟件的認(rèn)識美國軍方向軟件工程學(xué)術(shù)和產(chǎn)業(yè)界提出的問題我們的士兵依賴軟件并且將越來越多的依賴軟件軍隊(duì)的成功依賴于軟件以及軟件企業(yè)我們需要更好的工具來滿足未來的挑戰(zhàn),我們的政府和企業(yè)并沒有致力于如何讓事情做的快速和廉價(jià)如果我們不能解決今天的問題,我們?nèi)绾文芸煽康貥?gòu)建未來可能具有十億行代碼的系統(tǒng)面臨具有十億行代碼規(guī)模的軟件,這樣的系統(tǒng)今天的技術(shù)力所不能及超大規(guī)模軟件未來軟件挑戰(zhàn),CMU,2006國際上軟件工程研究重要機(jī)構(gòu)-CMUSEI軟件工程領(lǐng)域的著名研究機(jī)構(gòu)軟件生產(chǎn)線、體系結(jié)構(gòu)、管理等美軍軟件工程方面的智囊軍方資助,解決美軍提出的問題為軍方提供戰(zhàn)略性和前瞻性的解決方案許多著名的研究成果E.g.,軟件生產(chǎn)線E.g.,能力成熟度模型CMM應(yīng)該引起我們的高度關(guān)注已有成果、關(guān)注問題、前瞻研究URL:CMUSEI開展的工作關(guān)注CMU的研究與實(shí)踐學(xué)術(shù)界對計(jì)算機(jī)軟件的認(rèn)識計(jì)算機(jī)軟件是一種邏輯產(chǎn)品,有其特殊性不同于硬件,非常復(fù)雜、成本高、風(fēng)險(xiǎn)大、維護(hù)困難與很多的內(nèi)在規(guī)律和邏輯尚不清楚缺乏相關(guān)的理論,基于統(tǒng)計(jì)分析的結(jié)果軟件開發(fā)是一項(xiàng)由多人參與、基于智力的協(xié)同活動(dòng)多人、智力、協(xié)同采用工程化的方法和途徑似乎是有效的不能采用硬件開發(fā)的方法不能采用手工、作坊式的方法過程和步驟、工具、產(chǎn)品、評審和檢查、質(zhì)量、進(jìn)度…工業(yè)界對計(jì)算機(jī)軟件的認(rèn)識計(jì)算機(jī)軟件的開發(fā)效率、速度、質(zhì)量遠(yuǎn)遠(yuǎn)無法滿足用戶日益增長的需求需求多變性、易變性、不明確性成本難以估算、質(zhì)量達(dá)不到要求、進(jìn)度無法按期推進(jìn)也稱“軟件危機(jī)”在不斷摸索中進(jìn)行總結(jié)、在持續(xù)實(shí)踐中發(fā)現(xiàn)規(guī)律實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)實(shí)踐先于理論,尋求最佳實(shí)踐不同的企業(yè)有不同的手段和實(shí)踐1.4成功的軟件項(xiàng)目和產(chǎn)品比爾蓋茨的Microsoft系列產(chǎn)品

從Windows到Office系列,從VisualStudio到CopilotXInstagram(abbr.Instanttelegram)軟件:基于移動(dòng)設(shè)備的照片和視頻共享、在線服務(wù)軟件成立于2010年10月,2012年被Facebook以10億美元收購社交軟件微信、TikTok、QQ、Facebook、Twitter等失敗的軟件項(xiàng)目失敗軟件項(xiàng)目的特點(diǎn)沒能按時(shí)交付成本超出預(yù)算軟件缺陷太多,無法按照當(dāng)初的設(shè)計(jì)正常運(yùn)行產(chǎn)品沒有得到市場認(rèn)可,沒有人使用失敗軟件項(xiàng)目的案例美國銀行規(guī)劃研發(fā)信托軟件系統(tǒng),項(xiàng)目預(yù)算2千萬美元,開發(fā)時(shí)長9個(gè)月;進(jìn)度超出2年,投入6千萬美元,仍然未能投入使用英國銀行軟件系統(tǒng)的建設(shè),投入大量的經(jīng)費(fèi),最終軟件項(xiàng)目失敗,導(dǎo)致整個(gè)銀行倒閉,成為軟件開發(fā)的“爛尾樓”思考和討論現(xiàn)代軟件有何復(fù)雜性和形態(tài)特點(diǎn)?如何理解人機(jī)物三元融合系統(tǒng)?如何來開發(fā)軟件系統(tǒng)?軟件開發(fā)難在哪里?軟件工程課程就是要回答這些問題!內(nèi)容課程的時(shí)代背景軟件滲透性和復(fù)雜性當(dāng)前軟件系統(tǒng)的特點(diǎn)課程學(xué)習(xí)要求課程特點(diǎn)和學(xué)習(xí)要求教學(xué)目標(biāo)和授課內(nèi)容課程考核要求課程考核要求和方法課程教學(xué)的支撐平臺*2.1軟件工程是一門特殊課程一門課程一個(gè)專業(yè)一個(gè)學(xué)科“軟件工程”這門課程有其特殊性!(1970s)(1980s)(2011)軟件工程既是一門課程,也是一項(xiàng)專業(yè),還是一個(gè)學(xué)科被賦予更多內(nèi)涵和知識的課程具有“工程”性質(zhì)和要求課程“實(shí)踐性要求”非常高的課程面向“復(fù)雜問題求解”的課程適合多種能力和素質(zhì)培養(yǎng)課程不同于“離散數(shù)學(xué)”、“編譯原理”、“操作系統(tǒng)”等課程軟件工程課程的特點(diǎn)內(nèi)容“虛”和“廣”思想性和抽象教學(xué)內(nèi)容廣域和交叉的課程知識發(fā)展“快”和“新”產(chǎn)業(yè)界開發(fā)實(shí)踐進(jìn)步快多維度、全方位的發(fā)展要求“實(shí)”和“高”能用工程方法開發(fā)軟件解決工程開發(fā)復(fù)雜問題計(jì)算機(jī)科學(xué)、管理學(xué)、數(shù)學(xué)等多學(xué)科知識實(shí)踐經(jīng)驗(yàn)的總結(jié)軟件開發(fā)的實(shí)踐教學(xué)是課程教學(xué)的關(guān)鍵實(shí)踐要體現(xiàn)工程化的要求和水平各種新技術(shù)、新方法、新工具不斷出現(xiàn)如DevOps、智能化開發(fā)、Copilot等軟件工程課程教學(xué)的難點(diǎn)難講透(教)知識點(diǎn)內(nèi)容抽象難以講清和講明教學(xué)成效難保證,課程教學(xué)需要適應(yīng)課程特點(diǎn),解決教學(xué)難點(diǎn)難學(xué)好(學(xué))理解知識點(diǎn)不易知其所以然困難做更難(做)開展軟件開發(fā)難達(dá)成工程要求難不僅要知其然,更要知其所以然不僅要講授是什么(What),更要詮釋為什么(Why),如何做(How)不僅要做的出,更要做的好(質(zhì)量)軟件工程課程學(xué)習(xí)的重點(diǎn)“工程”意味著要開展實(shí)踐,并且要采用”工程化”方法系統(tǒng)化、規(guī)范化和可量化“工程”意味著要實(shí)踐對象要有規(guī)模,要關(guān)注質(zhì)量等因素上規(guī)模、一定復(fù)雜度、高質(zhì)量“實(shí)踐教學(xué)”是課程教學(xué)的重點(diǎn),也是上好這門課的關(guān)鍵教學(xué)不能停留于知識講授,不能紙上談兵學(xué)好課程的關(guān)鍵在于做好課程實(shí)踐2.2軟件工程課程教學(xué)的目標(biāo)和定位理解軟件開發(fā)問題,軟件工程思想、原則和方法運(yùn)用運(yùn)用軟件工程過程、方法和工具來開發(fā)分析分解、組合、建模、設(shè)計(jì)和驗(yàn)證軟件評價(jià)評估評價(jià)軟件質(zhì)量、評估方法等創(chuàng)新運(yùn)用軟件工具來解決實(shí)際問題BLOOM模型培養(yǎng)學(xué)生多方面的能力和素質(zhì)達(dá)成高階的教學(xué)目標(biāo)如何學(xué)好這門課:課堂要認(rèn)真聽講交流與討論內(nèi)容基于教材但不局限于教材內(nèi)容組織不完全對應(yīng)于教材認(rèn)真聽講勤于思考參與討論經(jīng)常提問如何學(xué)好這門課:做好課程實(shí)踐是關(guān)鍵講授分析實(shí)踐講評講授分析實(shí)踐講評講授分析實(shí)踐講評講授分析實(shí)踐講評講授-老師實(shí)踐-學(xué)生實(shí)踐、實(shí)踐、再實(shí)踐!課程實(shí)踐將貫穿于課程學(xué)習(xí)的全過程如何學(xué)好這門課:持續(xù)投入、獨(dú)立解決和不斷總結(jié)利用課內(nèi)和課后時(shí)間,持續(xù)實(shí)踐投入開發(fā)、討論、演示、總結(jié)、匯報(bào)、撰寫參加和貢獻(xiàn)務(wù)必自己動(dòng)手去做務(wù)必獨(dú)立解決問題務(wù)必開展交流合作務(wù)必做到精益求精務(wù)必要不斷的總結(jié)要收獲必須要投入如何學(xué)好這門課:追求卓越持續(xù)改進(jìn)講評考評持續(xù)改進(jìn)、提升質(zhì)量精益求精、追求卓越匯報(bào)和講評根據(jù)老師的講評不斷改進(jìn)你的實(shí)踐成果,提升實(shí)踐的質(zhì)量如何學(xué)好這門課:不斷進(jìn)行總結(jié)、交流和討論在知士薈上進(jìn)行提問、回答、評論、分享和總結(jié)/#/spaces/146要求每周1篇技術(shù)博客,要在學(xué)習(xí)社區(qū)進(jìn)行交流和分享看看往屆學(xué)生的學(xué)習(xí)心得、體會、感受和成果2.3對學(xué)生提出的基本要求課上要聽懂知其然且知其所以然下課做的了運(yùn)用所學(xué)知識來開展軟件開發(fā)實(shí)踐課后有交流問題、回答、評論、經(jīng)驗(yàn)投入有保障投入足夠的時(shí)間,迎難而上,勇氣和信心目標(biāo)要遠(yuǎn)大工程能力:規(guī)范、文檔、設(shè)計(jì)、質(zhì)量、……職業(yè)素養(yǎng):嚴(yán)謹(jǐn)、專業(yè)、交流、討論、……2.4本課程將讓你學(xué)到…認(rèn)識軟件系統(tǒng)及復(fù)雜性特點(diǎn)理解軟件系統(tǒng)開發(fā)面臨挑戰(zhàn)領(lǐng)會軟件工程的思想和方法掌握軟件開發(fā)的技術(shù)和工具基于團(tuán)隊(duì)來組織和開發(fā)軟件獨(dú)立解決軟件開發(fā)中的問題獲得和積累軟件開發(fā)的經(jīng)驗(yàn)……2.5課程教學(xué)目標(biāo)深入理解和認(rèn)識“軟件”概念及其特點(diǎn)系統(tǒng)掌握軟件工程的原則、方法和思想熟練運(yùn)用各種技術(shù)、工具以及管理手段持續(xù)開展軟件開發(fā)實(shí)踐以積累相關(guān)經(jīng)驗(yàn)深刻認(rèn)識軟件工程方法及開發(fā)存在問題不斷培養(yǎng)多方面的能力和軟件工程素養(yǎng)2.6課程教學(xué)組織與實(shí)踐安排軟件工程(48學(xué)時(shí))軟件體系結(jié)構(gòu)與設(shè)計(jì)(48學(xué)時(shí))春季學(xué)期秋季學(xué)期貫穿二個(gè)學(xué)期和二門課程的綜合實(shí)踐課程教學(xué)內(nèi)容程序及質(zhì)量保證方法軟件及其特點(diǎn)軟件工程概述軟件過程模型敏捷軟件開發(fā)方法群體化軟件開發(fā)方法需求分析基礎(chǔ)獲取軟件需求面向?qū)ο筌浖枨蠓治鲕浖O(shè)計(jì)基礎(chǔ)軟件體系結(jié)構(gòu)設(shè)計(jì)用戶界面設(shè)計(jì)軟件詳細(xì)設(shè)計(jì)編寫程序代碼軟件測試軟件部署軟件維護(hù)與演化軟件項(xiàng)目管理完成二項(xiàng)課程綜合實(shí)踐閱讀、分析和維護(hù)開源軟件(10000行代碼)2人組成一個(gè)實(shí)踐團(tuán)隊(duì)秋季學(xué)期《軟件工程》課程開發(fā)上規(guī)模、有創(chuàng)意和高質(zhì)量的軟件(10000行代碼)4人組成一個(gè)實(shí)踐團(tuán)隊(duì)春季學(xué)期《軟件體系結(jié)構(gòu)與設(shè)計(jì)》課程課程綜合實(shí)踐1:閱讀、分析和維護(hù)開源軟件學(xué)習(xí)對象:高質(zhì)量開源軟件學(xué)習(xí)內(nèi)容:高質(zhì)量代碼,高水平設(shè)計(jì)、開發(fā)技能和經(jīng)驗(yàn)學(xué)習(xí)方式:閱讀、標(biāo)注、分析、模仿和應(yīng)用以維護(hù)軟件學(xué)習(xí)開源代碼,要求學(xué)以致用!閱讀標(biāo)注分析維護(hù)設(shè)計(jì)模型代碼標(biāo)注質(zhì)量報(bào)告高質(zhì)量代碼高質(zhì)量開源代碼往屆學(xué)生的實(shí)踐情況

每個(gè)結(jié)對平均最多最少每周課外投入(小時(shí)/周)10204編寫代碼量(行)5001000200復(fù)用開源代碼(行)120020000添加注釋量(行)8002000200Git提交次數(shù)(次)142153131小米便簽開源代碼代碼總量:8887LOC;文件數(shù):39注釋總數(shù):5627LOC;

注釋行數(shù):

2706;

注釋率:30.4%問題數(shù)量:

1654LOC涵蓋從需求分析、軟件設(shè)計(jì)、編碼實(shí)現(xiàn)、軟件測試等方面的實(shí)踐內(nèi)容及要求課程綜合實(shí)踐2:軟件開發(fā)實(shí)踐任務(wù)開發(fā)有創(chuàng)意、上規(guī)模和高質(zhì)量軟件要求創(chuàng)意、規(guī)模、質(zhì)量、綜合、系統(tǒng)結(jié)果模型文檔代碼演示等創(chuàng)意性問題、需求、解決方法系統(tǒng)性集成物理系統(tǒng)、遺留系統(tǒng)、開源軟件規(guī)模性>15000行程序代碼綜合性運(yùn)用多種技術(shù)、語言、工具和平臺高質(zhì)量模型、文檔和代碼等實(shí)踐成果質(zhì)量高實(shí)踐教學(xué)是關(guān)鍵,要為“軟件工程”這把牛刀準(zhǔn)備相適應(yīng)的“實(shí)踐內(nèi)容”往屆學(xué)生的實(shí)踐示例(1/3)創(chuàng)意性:問題及基于機(jī)器人的解決方法集成性:機(jī)器人、APP及4個(gè)開源軟件系統(tǒng)綜合性:3種語言及多種技術(shù)與平臺規(guī)模性:66000(開源50000+)LOC分布性:部署在手機(jī)、機(jī)器人、服務(wù)器等高質(zhì)量:模型、代碼和文檔質(zhì)量優(yōu)SE+PL+Robotics+網(wǎng)絡(luò)傳輸+模式識別等

往屆學(xué)生的實(shí)踐示例(2/3)開發(fā)技術(shù)機(jī)器人操作系統(tǒng)ROS、AndroidAPP開發(fā)、網(wǎng)絡(luò)編程程序語言Java、Python、C開發(fā)工具AndroidStudio、SonarQube、Junit開源社區(qū)CSDN、GitHub、StackOverflow、OSChina開源軟件Roconremocon科大訊飛智能語音包OpenNILinphone軟件文檔UML模型程序代碼宣傳彩頁演示視頻總結(jié)PPT技術(shù)博客創(chuàng)意構(gòu)思+知識學(xué)習(xí)+開發(fā)實(shí)踐+解決問題+成果展示+語言/文字表達(dá)

iCAN國際創(chuàng)新創(chuàng)業(yè)大賽總決賽一等獎(jiǎng)中國高校計(jì)算機(jī)大賽全國總決賽一等獎(jiǎng)泛珠三角計(jì)算機(jī)作品賽總決賽金銀獎(jiǎng)網(wǎng)絡(luò)技術(shù)挑戰(zhàn)總決賽一等二等獎(jiǎng)珠三角計(jì)算機(jī)作品賽總決賽最佳實(shí)用獎(jiǎng)計(jì)算機(jī)作品賽湖南省賽區(qū)特等和一等獎(jiǎng)長沙市創(chuàng)新創(chuàng)業(yè)比賽二等獎(jiǎng)……開發(fā)許多有創(chuàng)意的課程實(shí)踐作品,近5年獲30項(xiàng)競賽獎(jiǎng)項(xiàng)往屆學(xué)生的實(shí)踐示例(3/3)內(nèi)容課程時(shí)代背景軟件滲透性和復(fù)雜性當(dāng)前軟件系統(tǒng)的特點(diǎn)課程學(xué)習(xí)要求課程特點(diǎn)和學(xué)習(xí)要求教學(xué)目標(biāo)和授課內(nèi)容課程考核要求課程考核要求和方法課程教學(xué)的支撐平臺*3.1課程考核形式考核組成成績比例考核方式課程考試50%開卷考試,個(gè)人綜合實(shí)踐40%團(tuán)隊(duì)+個(gè)人技術(shù)博客5%個(gè)人交流討論5%個(gè)人課程試卷開題設(shè)計(jì)原則不考“死記硬背”的內(nèi)容(what)概念是什么,方法是什么如軟件有何特點(diǎn)要考對知識點(diǎn)的理解、認(rèn)識和運(yùn)用為什么(Why)、如何(How)需要建立在課程實(shí)踐的基礎(chǔ)之上課程實(shí)踐考評原則課程實(shí)踐的質(zhì)量(文檔、模型和代碼)課程實(shí)踐的規(guī)模(如功能點(diǎn)、代碼量)課程實(shí)踐的創(chuàng)意(如新增功能的創(chuàng)意)泛讀代碼代碼標(biāo)注質(zhì)量代碼開源維護(hù)10%20%30%40%平時(shí)成績考評原則每周提交技術(shù)博客的質(zhì)量(5%)在知士薈平臺上參與交流和討論情況(5%)3.2課后實(shí)踐要求知士薈平臺:交流和討論/#/spaces/146,交流、討論、分享等每周一篇技術(shù)博客,加入到本班級的學(xué)習(xí)群組EduCoder平臺:實(shí)訓(xùn)和實(shí)踐/paths/1944,線上實(shí)訓(xùn),相關(guān)內(nèi)容講完后頭歌上實(shí)踐課堂及作業(yè),創(chuàng)建和關(guān)聯(lián)項(xiàng)目、協(xié)同開發(fā)、提交作業(yè)課程學(xué)習(xí)的教學(xué)資源

課件、視頻、試卷、案例等內(nèi)容往屆學(xué)生對課程的評價(jià)學(xué)習(xí)過程很艱難,學(xué)完之后成果超預(yù)期,學(xué)到了許多超出書本、真正有用的東西,受益匪淺、收獲很大,有成就感大學(xué)學(xué)習(xí)期間收獲最大的一門課程,我們本科階段最有挑戰(zhàn)性最有收獲的課程軟工這門課真正意義上激發(fā)了我作為一個(gè)計(jì)算機(jī)專業(yè)學(xué)生的專業(yè)思維。這門課對我來說意義匪淺,不僅讓我自己有機(jī)會證明自己的能力,同時(shí)開拓了我的視野,拓展了我的知識域,讓我更加有一名計(jì)算機(jī)專業(yè)學(xué)生的樣子了。這門課程是切實(shí)值得認(rèn)真學(xué)習(xí)的一門課程,絕不是簡單的代碼編寫,更多的是提供了一種工程化的思維,我認(rèn)為這種思維對于指導(dǎo)實(shí)踐是非常有價(jià)值的。這門課程我收獲很大,提高了實(shí)踐能力,鍛煉了敢于解決困難的精神。這一年地軟件工程課程學(xué)習(xí)收獲還是很大吧,可以說是最精彩的一門課。訪問/#/spaces/146/resources,了解往屆學(xué)生學(xué)習(xí)心得和收獲學(xué)生的認(rèn)識(1/3)軟件工程重在“工程”而非“軟件”,這就決定了它的本質(zhì)要求是實(shí)踐。只有動(dòng)手實(shí)踐,即自己寫代碼、寫博客、查資料、讀源碼,才能把別人的東西轉(zhuǎn)化為自己的理解與經(jīng)驗(yàn),真正學(xué)進(jìn)去并為自己所用不能過于害怕實(shí)踐,一定要放心大膽地去做這一年的磨練全方面、大幅度提高個(gè)人的能力水平,這是讓一門真正體會到“大學(xué)”二字的課程團(tuán)隊(duì)協(xié)作與按時(shí)完成非常重要學(xué)生的認(rèn)識(2/3)學(xué)習(xí)了這門課我漸漸的改變了自己的編程習(xí)慣,按照編程規(guī)范寫代碼,寫注釋,檢測代碼質(zhì)量,我認(rèn)為這是我從了解編程轉(zhuǎn)變?yōu)殚_始懂編程這門課教會了很多東西,不管是技術(shù)上,管理上,還是精神上,我相信在這門課中的學(xué)習(xí)實(shí)踐會影響我之后的學(xué)習(xí)在上課之前就有學(xué)長跟我說,在科大學(xué)的最有用的一門課就是毛新軍教員的軟件工程,現(xiàn)在想想確實(shí)如此不論遇到多大的困難,都要盡自己最大的努力去克服,只有堅(jiān)持不懈的努力才能戰(zhàn)勝苦難,成就最好的自己學(xué)生的認(rèn)識(3/3)這一年的學(xué)習(xí)真的是受益匪淺,雖然飽受痛苦,但也在不斷地學(xué)習(xí)中戰(zhàn)勝困難,不斷成長

一年前,從17級學(xué)長那里傳出一句話:大三有一門課叫軟件工程,一門頂三門經(jīng)過課程實(shí)踐一以后,自己對課程的知識才有了一點(diǎn)朦朧的感覺在這一學(xué)年的學(xué)習(xí)中,實(shí)踐一直是重中之重,也只有通過實(shí)踐,我們才能深入地把知識吃透。在整個(gè)實(shí)踐過程中,遇到了數(shù)不清的困難,每一步都走得很艱難軟件工程課程教材毛新軍等,軟件工程:理論與實(shí)踐,高等教育出版社,2024年1月,ISBN:978-7-04-061010-9.

101計(jì)劃核心教材毛新軍等,軟件工程實(shí)踐教程:基于開源和群智的方法(第二版),高等教育出版社,ISBN978-7-04-052423-9.2024年10月,101計(jì)劃核心實(shí)踐教材主教材實(shí)踐教材軟件工程主教材軟件工程:理論與實(shí)踐,高等教育出版社,ISBN:978-7-04-061010-9,2024年1月.教育部101計(jì)劃核心教材.內(nèi)容先進(jìn)引入新技術(shù)新方法新實(shí)踐連接專業(yè)教育與產(chǎn)業(yè)實(shí)踐融合工程范式與群智范式組織科學(xué)從程序及其質(zhì)量保證入手重新組織知識章節(jié)和內(nèi)容由易到難、由具體到抽象詮釋深入利用身邊軟件和思政案例完整深入人機(jī)物融合案例模板、模型、文檔、代碼強(qiáng)化實(shí)踐設(shè)計(jì)二類綜合性課程實(shí)踐明確綜合實(shí)踐任務(wù)和要求綜合性實(shí)踐具有可操作性軟件工程實(shí)踐教材軟件工程實(shí)踐教程:基于開源和群智的方法,高等教育出版社,2019.8,ISBN978-7-04-052423-9.明確實(shí)踐要求規(guī)模性、系統(tǒng)性、綜合性、創(chuàng)意性、高質(zhì)量二類實(shí)踐任務(wù)閱讀、分析和維護(hù)開源軟件開發(fā)有創(chuàng)意、上規(guī)模和高質(zhì)量軟件系統(tǒng)完整實(shí)踐案例小米便簽開源軟件空巢老人看護(hù)軟件新穎實(shí)踐方法學(xué)開源、用開源、利用群智有效考評方法考為輔、評為主、以評促改、持續(xù)改進(jìn)3.4往屆課程學(xué)生實(shí)踐作品的視頻演示無人值守圖書館空巢老人看護(hù)系統(tǒng)多無人機(jī)聯(lián)合搜救系統(tǒng)基于增強(qiáng)現(xiàn)實(shí)的導(dǎo)航軟件Arnavigator基于語音交互的老人看護(hù)機(jī)器人系統(tǒng)DrivingAssitant……問題和討論Git使用介紹內(nèi)容分布式版本管理概述分布式版本控制的基本思想何為Git?Git的基本理念、功能和服務(wù)Git使用Git的操作問題提出如何將多人開發(fā)的不同代碼管理起來程序代碼存儲代碼沖突處理代碼版本變更程序代碼追蹤工作量的統(tǒng)計(jì)……需要對代碼進(jìn)行版本控制(RevisionControl)張三李四王五版本控制的重要性版本控制是有效管理程序文檔、提高協(xié)作效率的重要手段多人協(xié)作(橫向視角)版本迭代(縱向視角)開發(fā)者1開發(fā)者2開發(fā)者3開發(fā)者4項(xiàng)目管理者v1v2v3v4版本控制概念版本控制是對軟件制品(程序、文檔、數(shù)據(jù)等)的更改和管理,它是軟件配置管理的重要組成部分組織和保護(hù)軟件制品:源代碼和文檔實(shí)現(xiàn)跨區(qū)域、多人的協(xié)同開發(fā)

記載和追蹤一個(gè)或者多個(gè)文件的歷史記錄跟蹤記錄軟件開發(fā)過程統(tǒng)計(jì)軟件開發(fā)工作量版本控制的二種方式集中式與

分布式集中式版本控制集中式版本控制版本庫集中存放在中央服務(wù)器之中開發(fā)前先從中央服務(wù)器取得最新版本開發(fā)完再把自己的工作推送給中央服務(wù)器中央服務(wù)器就好比是一個(gè)圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完后再放回圖書館特點(diǎn)高度集中、難以有效支持協(xié)同開發(fā)典型系統(tǒng):CVS、SVN、ClearCase版本庫開發(fā)者開發(fā)者開發(fā)者分布式版本管理分布式版本控制有一個(gè)中央倉庫開發(fā)前在本機(jī)上拷貝一個(gè)完整軟件倉庫開發(fā)完把自己工作提交到本地倉庫中需要同步給協(xié)作者時(shí)再遞交到中央倉庫版本庫分步存儲于各協(xié)作者電腦中優(yōu)點(diǎn)不依賴中央服務(wù)器、可在本地開發(fā)、有效支持協(xié)同開發(fā)典型系統(tǒng):Git中央倉庫本地倉庫本地倉庫本地倉庫本地倉庫版本控制的發(fā)展RCS(1982)CVS(1990),SVN(2001)Git(2005)BitKeeper(1999)何為Git?Git是一種分布式的版本控制系統(tǒng)支持存儲代碼、跟蹤修訂歷史記錄、合并代碼更改等,可在需要時(shí)恢復(fù)較早的代碼版本,可實(shí)現(xiàn)團(tuán)隊(duì)的高效協(xié)作LinusTorvalds研制和開發(fā)為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個(gè)開源的版本控制軟件成為行業(yè)標(biāo)準(zhǔn)Git是目前世界上最先進(jìn)的分布式版本控制LinusTorvaldsGit采用分部式管理模式分布式版本管理本地?fù)碛型暾姹編欤С蛛x線操作有效應(yīng)對了中心服務(wù)器崩潰帶來的影響有效支持代碼審查、持續(xù)集成等開發(fā)活動(dòng)Git的基本功能

版本管理管理各種源代碼和文檔、切換不同版本等

過程管理跟蹤開發(fā)過程、查閱歷史記錄等代碼評審可視化評估代碼質(zhì)量,決斷是否合并代碼等;擴(kuò)展功能企業(yè)DevOps自動(dòng)化、代碼Issue聯(lián)動(dòng)管理;……

Workspace:工作區(qū)Index/Stage:暫存區(qū)Repository:倉庫區(qū)(或本地倉庫)Git的倉庫構(gòu)成遠(yuǎn)端倉庫本地端倉庫本地倉庫暫存區(qū)工作區(qū)Remote:遠(yuǎn)程倉庫Git版本管理的基本概念倉庫(Repository)軟件所有文件的完整修訂歷史版本(Revision)代碼庫的編號方案,如Tag0.1分支(Branch)對代碼庫并行修改時(shí)的代碼庫副本如master,develop,branch1,…提交(Commit)對分支的一次修訂下拉(Pull)將遠(yuǎn)程的一個(gè)分支讀取并保存到本地分支推送(Push)將本地分支代碼發(fā)送到遠(yuǎn)程某個(gè)分支合并(Merge)將對相同文件在不同分支的修改合并到一個(gè)分支中沖突(Conflict)當(dāng)兩個(gè)分支中存在對同一文件的不同修改,并試圖合并這兩個(gè)分支時(shí),就會發(fā)生沖突Tag0.1Tag0.2Tag1.0Commit#ab892nCommit#lm2671spullpushmaster和develop是標(biāo)準(zhǔn)分支,master是缺省的主分支Git各項(xiàng)操作本地倉庫暫存區(qū)工作區(qū)Git分支的理念和操作使用分支意味著你可以把你的工作從開發(fā)主線上分離開來,以免影響開發(fā)主線masterbranch2branch1createmergecommitcreatemergecommit分支本地操作分支本地操作Git的使用分支管理流程:初始化過程(組長)1創(chuàng)建版本庫(默認(rèn)master分支),push初始代碼2創(chuàng)建遠(yuǎn)程develop分支分支管理流程:基本過程(組員)3克隆代碼,切換到develop分支4新建自己的分支my_branch(各組員分支名不同)5修改my-branch:正常開發(fā),修改完成后將修改的內(nèi)容推送到遠(yuǎn)程my_branch分支合并分支:基本過程(組長)6切換develop分支,pull代碼7合并組員的分支(my_branch)到develop分支8解決沖突,然后將合并好的develop分支推送到遠(yuǎn)程9將develop分支合并到master分支(這一步可以按實(shí)際需求,master上一般為穩(wěn)定版本)組長組員創(chuàng)建版本庫push代碼創(chuàng)建develop分支創(chuàng)建自己分支masterdevelop自己分支自己分支創(chuàng)建自己分支提交、push代碼提交、push代碼合并分支解決沖突合并分支合并developPull最新代碼Pull最新代碼1.創(chuàng)建本地版本庫命令:gitinit在執(zhí)行

溫馨提示

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

最新文檔

評論

0/150

提交評論