




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、11/8/2021西安文理學院西安文理學院 徐東升software engineering 一一本課程的特點本課程的特點二二學習的主要內容學習的主要內容三三培養(yǎng)目標培養(yǎng)目標四四教學安排教學安排五五主要參考書目主要參考書目六六考核方式考核方式1、是一門很重要的專業(yè)課,學習內容比較多;、是一門很重要的專業(yè)課,學習內容比較多;2、屬、屬“工程工程”學科;學科;3、是一門需不斷完善的、發(fā)展的、可創(chuàng)新的學科、是一門需不斷完善的、發(fā)展的、可創(chuàng)新的學科。 2011年3月8日由國務院學位委員會、中華人民共和國教育部聯合發(fā)出“關于印發(fā)學位授予和人才培養(yǎng)學科目錄(2011年)的通知” (學位201111號),通知
2、中將將軟件工程由原來的二級學科新列為一級學科(學科代碼為0835),原來軟件工程學科是計算機科學與技術一級學科下面的二級學科。 返回1、軟件工程的基本概念及軟件危機、軟件工程的基本概念及軟件危機2、軟件生存周期及軟件開發(fā)模型、軟件生存周期及軟件開發(fā)模型3、軟件計劃(問題定義及可行性研究)、軟件計劃(問題定義及可行性研究)4、軟件分析、軟件分析(需求分析需求分析)5、軟件系統設計、軟件系統設計6、軟件測試、軟件測試7、軟件維護、軟件維護8、面向對象軟件工程、面向對象軟件工程9、軟件項目管理、軟件項目管理返回通過本課程的學習,通過本課程的學習,消除錯誤的認識,學習軟件工程基本理論,消除錯誤的認識,
3、學習軟件工程基本理論,掌握軟件開發(fā)全過程中的各重要階段的任務及相關描述方法,掌握軟件開發(fā)全過程中的各重要階段的任務及相關描述方法,使學生能真正的從中了解軟件開發(fā)的整個過程。為了使學生能真正的從中了解軟件開發(fā)的整個過程。為了讓學生真正得以實踐,結合實際軟件開發(fā)項目,讓學讓學生真正得以實踐,結合實際軟件開發(fā)項目,讓學生從問題定義開始,經過可行性研究、需求分析、概生從問題定義開始,經過可行性研究、需求分析、概要設計、詳細設計、編碼直到最后要對自己開發(fā)的軟要設計、詳細設計、編碼直到最后要對自己開發(fā)的軟件還要進行測試,這樣一個軟件開發(fā)過程,從而使學件還要進行測試,這樣一個軟件開發(fā)過程,從而使學生掌握軟件
4、開發(fā)的基本技能,具備軟件工程師的基本生掌握軟件開發(fā)的基本技能,具備軟件工程師的基本素質。素質。 產生兩個轉變產生兩個轉變 轉變對軟件的認識轉變對軟件的認識 程序程序-上升上升-系統系統 轉變思維定式轉變思維定式 程序員程序員-上升上升-系統工程師系統工程師(系統分析員)(系統分析員)培養(yǎng)目標培養(yǎng)目標1、見附件2、答疑 時間:待定 地點:明德樓d座0413 11/8/2021動腦:動腦分析實際問題!動手:動手撰寫文檔、編寫程序!學好本課程的關鍵學好本課程的關鍵1、主要參考書目:、主要參考書目: 軟件工程軟件工程 張海藩張海藩 編著編著 清華大學出版社清華大學出版社2、其他參考書目:、其他參考書目
5、: 軟件工程與實踐軟件工程與實踐賈鐵軍、甘泉主編賈鐵軍、甘泉主編 清華大學出版社清華大學出版社 實用軟件工程實用軟件工程 趙池龍、楊林趙池龍、楊林 主編主編 電子工業(yè)出版社電子工業(yè)出版社 實用軟件工程實用軟件工程 鄭人杰主編鄭人杰主編 清華大學出版社清華大學出版社返回1、課程性質:考試課、課程性質:考試課2、考核方式:考試(、考核方式:考試(60) 綜合設計(綜合設計(20) 平平時(時(20)返回11/8/2021第一章第一章 軟件工程概述軟件工程概述水利工程建筑工程機械工程 本章將對軟件的地位和作用、軟件的特點、軟件的發(fā)展、軟件的危機以及軟件工程學科的形成、軟件生命周期及軟件過程(或叫軟件
6、開發(fā)模型)等方面的問題和基本概念進行介紹。傳統工程新興工程氣象工程生物工程11/8/20211.1 軟件的概念與特點軟件的概念與特點1、軟件softwaresoft+ware軟制品(軟體) 軟件是計算機系統中與硬件相互依存的另一部分。 它包括程序、數據及其相關文檔的完整集合。其中相關 文檔分為面向用戶的文檔和面向開發(fā)者的文檔。固件固件(firmware)就是寫入就是寫入erom或或eprom(可編程只讀存儲器可編程只讀存儲器)中的程序,通俗中的程序,通俗的理解就是的理解就是“固化的軟件固化的軟件”,更簡單的說,固件就是,更簡單的說,固件就是bios的軟件,但又與普通的軟件,但又與普通軟件完全不
7、同,它是固化在集成電路內部的程序代碼,負責控制和協調集成電路軟件完全不同,它是固化在集成電路內部的程序代碼,負責控制和協調集成電路的功能。的功能。 11/8/20212、軟件特點 軟件是一種邏輯實體,而不是具體的物理實體 軟件的生產與硬件不同 ,無明顯制造過程 在軟件的運行和使用期間,沒有硬件那樣的機械 磨損,老化問題磨合調整磨損用壞修改點實際曲線理想曲線硬件失效率曲線時間失效率時間失效率軟件失效率曲線11/8/2021 定制的且本身是復雜的(邏輯結構復雜,解決問題復雜,相當多的軟件都涉及到社會因素) 開發(fā)與運行受制于計算機硬件,有依賴性 至今尚未完全擺脫手工的開發(fā)方式 軟件的成本相當昂貴軟件
8、技術的發(fā)展落后于需求時間軟件復雜性軟件需求差距軟件技術硬、軟件成本比例的變化年份成本%1950197019851995硬件硬件11/8/20213、軟件的分類系統軟件支撐軟件應用軟件11/8/2021支撐軟件11/8/2021 按開發(fā)軟件所需的 人力、時間以及完成的 源代碼行數。類別參加人數研制期限產品規(guī)模(源代碼行數)11/8/2021 項目軟件產品軟件(4)按軟件工作方式劃分 實時軟件:收到請求中斷后立即響應 分時軟件:按時間片響應多個聯機用戶 交互式:一問一答式 批處理軟件:一批數據一次性地處理(5)按使用的頻度劃分 一次使用:比如驗證需求、采集數據的軟件,如人口普查軟件,火箭發(fā)射軟件等
9、。 頻繁使用:(6)按軟件失效的影響劃分 高可靠性:軍事、金融 一般可靠性:4、軟件的發(fā)展、軟件的發(fā)展(伴隨著計算機硬件系統伴隨著計算機硬件系統4個不同的發(fā)展階段而發(fā)展個不同的發(fā)展階段而發(fā)展)時期時期硬件硬件軟件軟件早期時代早期時代20世紀世紀60年代中期以前年代中期以前晶體管計算機晶體管計算機程序設計階段程序設計階段個體化生產個體化生產 程序程序第二代第二代20世紀世紀60年代中期到年代中期到70年代中期年代中期集成電路計算機集成電路計算機程序系統階段程序系統階段作坊式生產作坊式生產 程序程序+說明說明軟件危機出現軟件危機出現軟件工程誕生軟件工程誕生第三代第三代20世紀世紀70年代中期到年代
10、中期到80年代中期年代中期微處理器微處理器個人計算機個人計算機軟件工程階段軟件工程階段工程化思想工程化思想 程序程序+數據數據+文檔文檔分布式系統分布式系統第四代第四代20世紀世紀80年代中期至今年代中期至今面向對象階段面向對象階段硬件與軟件綜合硬件與軟件綜合軟件開發(fā)第四代技術軟件開發(fā)第四代技術 面向批處理 有限的分布 自定義軟件 初期 多用戶 實時 數據庫 軟件產品 第二階段 分布式系統 嵌入“智能” 低成本硬件 消費者的影響 第三階段 強大的桌面系統 面向多項技術 專家系統 人工神經網絡 并行計算 網絡計算機 第四階段 1950 年 1960 年 1970 年 1980 年 1990 年
11、2000 年 計算機軟件發(fā)展的計算機軟件發(fā)展的4個階段個階段 11/8/2021程序 3、軟件的演變(即從傳統軟件開發(fā)到現代軟件開發(fā)) 軟件軟件產品傳統軟件開發(fā)現代軟件開發(fā) 1975 1989 2000 0.00016240營業(yè)額增長曲線 80 軟件危機:計算機軟件的開發(fā)和維護過程中所遇到軟件危機:計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。(正常、不正常運行軟件都具有這的一系列嚴重問題。(正常、不正常運行軟件都具有這種問題)種問題) 1.2.1 軟件危機的介紹軟件危機的介紹1.2 軟件危機軟件危機ibm 公司研發(fā)初期的公司研發(fā)初期的os/360,共約,共約100萬條指令,花費了萬條指
12、令,花費了5000個人年;經費達數億美元個人年;經費達數億美元,而結果卻令人沮喪,錯誤多達,而結果卻令人沮喪,錯誤多達2000 個以上,系統根本無法正常運行。個以上,系統根本無法正常運行。os/360 系統的系統的負責人負責人brooks 這樣描述開發(fā)過程的困難和混亂:這樣描述開發(fā)過程的困難和混亂:“像巨獸在泥潭中垂死掙扎,掙扎得像巨獸在泥潭中垂死掙扎,掙扎得越猛,泥漿沾得越多陷入更深,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運越猛,泥漿沾得越多陷入更深,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運” 。案例案例1-11-11)對軟件開發(fā)成本和進度的估計常常很不準確;)對軟件開發(fā)成本和進度的估計
13、常常很不準確;2)用戶對完成的軟件系統不滿意的現象經常發(fā)生;)用戶對完成的軟件系統不滿意的現象經常發(fā)生;3)軟件產品的質量往往靠不住;)軟件產品的質量往往靠不住; 軟件危機的典型表現:軟件危機的典型表現:4)軟件常常是不可維護的;)軟件常常是不可維護的;5)軟件通常沒有適當的文檔資料;)軟件通常沒有適當的文檔資料;6)軟件成本在計算機系統總成本中所占的比)軟件成本在計算機系統總成本中所占的比例逐年上升;例逐年上升;7)軟件開發(fā)生產率提高的速度跟不上計算機)軟件開發(fā)生產率提高的速度跟不上計算機應用的發(fā)展趨勢。應用的發(fā)展趨勢。 1.2.2 產生軟件危機的原因產生軟件危機的原因1)軟件本身特點造成;
14、)軟件本身特點造成;2)軟件開發(fā)與維護的方法不正確。)軟件開發(fā)與維護的方法不正確。主要表現:主要表現: (a)忽視軟件需求分析;)忽視軟件需求分析; (b)認為軟件開發(fā)就是寫程序并使之運行;)認為軟件開發(fā)就是寫程序并使之運行; (c)輕視軟件維護;)輕視軟件維護; 在軟件開發(fā)的不同階段進行修改需要付出的代在軟件開發(fā)的不同階段進行修改需要付出的代價很不相同:價很不相同:高高中中低低早期早期中期中期后期后期軟件開發(fā)時期軟件開發(fā)時期代價代價引入同一修改的代價隨時間變化的趨勢引入同一修改的代價隨時間變化的趨勢1)技術方法。推廣使用在實踐中總結出來的開)技術方法。推廣使用在實踐中總結出來的開發(fā)軟件的成功
15、技術和方法,并研究探索更有效的發(fā)軟件的成功技術和方法,并研究探索更有效的技術和方法;技術和方法;2)開發(fā)工具。開發(fā)和使用更好的軟件工具;)開發(fā)工具。開發(fā)和使用更好的軟件工具;3)組織管理。良好的組織管理措施。)組織管理。良好的組織管理措施。 1.2.3 解決軟件危機的途徑解決軟件危機的途徑 為了解決軟件危機產生的問題,軟件工程與方為了解決軟件危機產生的問題,軟件工程與方法學逐漸形成,然后出現了兩個相互相承又各有側法學逐漸形成,然后出現了兩個相互相承又各有側重的學科:重的學科: 1)軟件工程學:主要應用工程的方法和技術研)軟件工程學:主要應用工程的方法和技術研究軟件開發(fā)與維護的方法、工具和管理的
16、一門交叉究軟件開發(fā)與維護的方法、工具和管理的一門交叉學科。學科。 2)程序設計方法學:主要應用數學的方法研究)程序設計方法學:主要應用數學的方法研究程序的性質以及程序設計的理論和方法的學科。程序的性質以及程序設計的理論和方法的學科。 1.3 軟件工程軟件工程 1.3.1 軟件工程的介紹軟件工程的介紹1968年年nato會議:軟件工程就是為了經濟地獲得可會議:軟件工程就是為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。使用完善的工程原理。1993年年ieee:軟件工程是(:軟件工程是(1)把系統的、規(guī)范的、)把系統的
17、、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護過程;可度量的途徑應用于軟件開發(fā)、運行和維護過程;(2)研究()研究(1)中提到的途徑。)中提到的途徑。 1. 軟件工程關注于大型程序的構造;軟件工程關注于大型程序的構造; 2. 軟件工程的中心課題是控制復雜性;軟件工程的中心課題是控制復雜性; 3. 軟件經常變化;軟件經常變化; 4. 開發(fā)軟件的效率非常重要;開發(fā)軟件的效率非常重要; 5. 和諧地合作是軟件開發(fā)的關鍵;和諧地合作是軟件開發(fā)的關鍵; 6. 軟件必須有效地支持它的用戶;軟件必須有效地支持它的用戶; 7. 在軟件工程領域中是由具有一種文化背景的在軟件工程領域中是由具有一種文化背景的人替
18、具有另一種文化背景的人創(chuàng)造產品。人替具有另一種文化背景的人創(chuàng)造產品。軟件工程的本質特性:軟件工程的本質特性: 1.3.2 軟件工程的基本原理軟件工程的基本原理 1. 用分階段的生命周期計劃嚴格管理;用分階段的生命周期計劃嚴格管理; 2. 堅持進行階段評審;堅持進行階段評審; 3. 實行嚴格的產品控制;實行嚴格的產品控制; 4. 采用現代程序設計技術;采用現代程序設計技術; 5. 結果能清楚地審查;結果能清楚地審查; 6. 開發(fā)小組的人員應該少而精;開發(fā)小組的人員應該少而精; 7. 承認不斷改進軟件工程實踐的必要性。承認不斷改進軟件工程實踐的必要性。1.3.3 軟件工程方法學軟件工程方法學 通常
19、把在軟件生命周期全過程中使用的一整套技通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學(術方法的集合稱為方法學(methodology),也稱),也稱為范型(為范型(paradigm)。)。 軟件工程方法學的軟件工程方法學的3要素:方法、工具和過程要素:方法、工具和過程11/8/2021 軟件工程學 軟件開發(fā)技術 軟件工程管理 軟件開發(fā)方法學 軟件工具 軟件工程環(huán)境 軟件工程管理學 軟件經濟學 - 軟件工程學的范疇 2、 軟件工程學 1. 傳統方法學傳統方法學 也稱為生命周期方法學或結構化范型。也稱為生命周期方法學或結構化范型。 結構化方法(結構化方法(structure me
20、thod)有:)有: 1)結構化設計方法()結構化設計方法(sd);); 2)結構化分析方法()結構化分析方法(sa);); 3)結構化分析與設計技術()結構化分析與設計技術(sadt) 4)jackson方法方法 5)warnier方法方法2. 面向對象方法學面向對象方法學 把數據和對數據的操作緊密結合起來的方法,模擬把數據和對數據的操作緊密結合起來的方法,模擬人類認識世界解決問題的方法和過程。人類認識世界解決問題的方法和過程。 面向對象的方法面向對象的方法 =對象(屬性與服務的封裝)對象(屬性與服務的封裝) +分類分類 +繼承繼承 +通過消息的通訊通過消息的通訊1)適用于實時事物處理系統的
21、有限狀態(tài)機方法)適用于實時事物處理系統的有限狀態(tài)機方法(fsm););2)適用于并發(fā)軟件系統的)適用于并發(fā)軟件系統的petri網方法;網方法;3)以數學概念和理論為基礎的形式化方法,如)以數學概念和理論為基礎的形式化方法,如 sdc公司的形式化開發(fā)方法公司的形式化開發(fā)方法fdm: (formal development methodology) ibm公司的維也納開發(fā)方法公司的維也納開發(fā)方法vdm: (vienna development method ) 3. 其他開發(fā)方法其他開發(fā)方法 1.3 軟件生命周期軟件生命周期 三個時期八個階段:三個時期八個階段:軟件生命周期由軟件定義、軟件開軟件生
22、命周期由軟件定義、軟件開發(fā)和運行維護發(fā)和運行維護(也稱為軟件維護也稱為軟件維護)三個時期組成,每個三個時期組成,每個時期又進一步劃分成若干個階段。時期又進一步劃分成若干個階段。 三個時期:三個時期:八個階段:八個階段:軟件生命周期軟件生命周期軟件定義軟件定義軟件開發(fā)軟件開發(fā)軟件維護軟件維護問題定義問題定義可行性研究可行性研究需求分析需求分析概要設計概要設計詳細設計詳細設計編碼和單元測試編碼和單元測試綜合測試綜合測試運行維護運行維護系統設計系統設計系統實現系統實現11/8/2021特點: 上一階段的變換結果 是下一階段的變換的 輸入,相鄰兩個階段 具有因果關系,緊密 相聯。需求分析需求分析問題定
23、義問題定義可性行研究可性行研究計劃計劃時期時期概要設計概要設計詳細設計詳細設計編編 碼碼 測測 試試開發(fā)開發(fā)時期時期運行與維護運行與維護運運 行行時時 期期軟件生存周期模型(瀑布模型 waterfall model)1. 問題定義問題定義 任務:問題是什么任務:問題是什么 通過對客戶的訪問調查,系統分析員扼要地寫出關通過對客戶的訪問調查,系統分析員扼要地寫出關于問題性質、工程目標和工程規(guī)模的書面報告。于問題性質、工程目標和工程規(guī)模的書面報告。 經過討論和必要的修改之后這份報告應該得到客戶經過討論和必要的修改之后這份報告應該得到客戶的確認。的確認。 結果:結果: 關于系統規(guī)模和目標的報告書關于系
24、統規(guī)模和目標的報告書 2. 可行性研究可行性研究 任務:有可行的解嗎任務:有可行的解嗎 系統分析員需要進行一次大大壓縮和簡化了的系統系統分析員需要進行一次大大壓縮和簡化了的系統分析和設計過程。分析和設計過程。 研究問題的范圍,探索這個問題是否值得去解,是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。否有可行的解決辦法。 結果:結果: 系統的高層邏輯模型(數據流圖、成本效益分析)系統的高層邏輯模型(數據流圖、成本效益分析) 可行性論證報告(立即進行可行性論證報告(立即進行/推遲進行推遲進行/不能或不值不能或不值得進行)得進行)3. 需求分析需求分析 任務:必須做什么任務:必須做
25、什么 主要是確定目標系統必須具備哪些功能。主要是確定目標系統必須具備哪些功能。 系統分析員必須和用戶密切配合,充分交流信息,系統分析員必須和用戶密切配合,充分交流信息,以得出經過用戶確認的系統邏輯模型。以得出經過用戶確認的系統邏輯模型。 結果:結果: 系統的邏輯模型(數據流圖、數據字典、簡要的算系統的邏輯模型(數據流圖、數據字典、簡要的算法描述)法描述) 用規(guī)格說明書準確地記錄對目標系統的需求用規(guī)格說明書準確地記錄對目標系統的需求4. 總體設計總體設計 任務:如何解決已提出的問題任務:如何解決已提出的問題 設計出實現目標系統的幾種可能的方案(低、中、設計出實現目標系統的幾種可能的方案(低、中、
26、高成本)。高成本)。 用適當的表達工具描述每種方案,分析優(yōu)缺點,推用適當的表達工具描述每種方案,分析優(yōu)缺點,推薦一個最佳方案,制定出實現最佳方案的詳細計劃。薦一個最佳方案,制定出實現最佳方案的詳細計劃。設計程序的體系結構。設計程序的體系結構。 結果:結果: 可能的解法(系統流程圖、成本效益分析)可能的解法(系統流程圖、成本效益分析) 推薦的系統體系結構(層次圖或結構圖)推薦的系統體系結構(層次圖或結構圖)5. 詳細設計詳細設計 任務:怎樣具體實現該系統任務:怎樣具體實現該系統 詳細地設計每個模塊,確定實現模塊功能所需要的詳細地設計每個模塊,確定實現模塊功能所需要的算法和數據結構。算法和數據結構。 結果:結果: 每個模塊的算法和數據結構每個模塊的算法和數據結構(程序流程圖、程序流程圖、pad圖、圖、n-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子產業(yè)園內的企業(yè)協作與創(chuàng)新環(huán)境構建
- 金融公司加盟合同范本
- 磁性材料市場中的女性消費者行為研究
- 樣衣訂購合同范本
- 二零二五年度跨境電子商務終止合作合同通知函樣本
- 2025年度購房合同轉讓及社區(qū)文化活動組織協議
- 2025年度銀杏樹觀賞樹冠租賃合同書
- 二零二五年度戶外探險服裝設計合同
- 二零二五年度文化沙龍無償場地使用權授權合同
- 2025年度羊代放牧基地建設與運營管理合同
- 直腸癌術后的康復護理
- 性商老師課程培訓課件
- 拆除鍋爐可行性報告
- 二級精神病醫(yī)院評審標準實施細則
- 全套ISO45001職業(yè)健康安全管理體系文件(手冊及程序文件)
- tdp燙傷處理應急預案
- MQL4命令中文詳解手冊
- 水利工程危險源辨識清單全
- ISO20000:2018版標準培訓教材
- 創(chuàng)新中學化學教學中的實驗設計
- 四川峨勝水泥集團股份有限公司環(huán)保搬遷3000td熟料新型干法大壩水泥生產線環(huán)境影響評價報告書
評論
0/150
提交評論