




已閱讀5頁,還剩134頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程- 原理、方法與應用,電子教案 48學時(32理論+16理論),課程安排,理論 內容:基本原理、方法和技術 形式:講授、自學、討論 實踐 內容:構造一個應用系統(tǒng)(包括分析、設計、編碼、測試) 形式:分組、分階段文檔、編碼、集成,軟件工程的主要內容,軟件工程的基本概念 軟件開發(fā)模型 軟件開發(fā)各階段的任務、技術、方法 傳統(tǒng)方法、面向對象方法 軟件工程管理 軟件質量保證 軟件工程環(huán)境,第一章 緒論,軟件與軟件危機 軟件工程學 傳統(tǒng)軟件工程和面向對象軟件工程 軟件工程的應用,軟件,程序、軟件與軟件產品 獨唱小合唱合唱萬人大合唱 | | | 簡單程序 較復雜程序 軟件 軟件定義: 軟件=程序+數據+文檔 程序:按事先設計的功能和性能需求執(zhí)行的指令序列 數據:是程序能正常操縱信息的數據結構 文檔:與程序開發(fā)、維護和使用有關的圖文材料,軟件的特征,軟件是邏輯的,而不是物理的 軟件開發(fā)與人關系密切 軟件開發(fā)成本大 軟件生產是簡單的拷貝 軟件不會磨損和老化 軟件受環(huán)境影響大 軟件維護易產生新的問題,軟件開發(fā)的發(fā)展過程,計算機應用發(fā)展,軟件數量多規(guī)模大,軟件成本高質量低,個體化軟件開發(fā)方法,軟件維護困難,軟件危機,軟件工程,軟件危機,定義 計算機軟件的開發(fā)和維護過程所遇到的一系列嚴重問題 表現 對軟件開發(fā)成本和進度的估算很不準確 用戶很不滿意 質量很不可靠 沒有適當的文檔 軟件成本比重上升 供不應求:軟件開發(fā)生產率跟不上計算機應用迅速深入的趨勢,硬件/軟件成本變化趨勢,100%,0%,1955,1970,1985,軟件技術進步落后于需求增長,軟件危機,原因 客觀:軟件本身特點 邏輯部件 規(guī)模龐大 主觀:不正確的開發(fā)方法 忽視需求分析 錯誤認為:軟件開發(fā)=程序編寫 輕視軟件維護,軟件危機,解決途徑 組織管理 工程項目管理方法 技術措施 軟件開發(fā)技術與方法 軟件工具,軟件工程學的范疇,軟件工程學 指導計算機軟件開發(fā)和維護的工程學科 工程管理+開發(fā)技術 軟件開發(fā)技術 軟件開發(fā)方法學 軟件工具 軟件工程環(huán)境 軟件工程管理 軟件管理學 軟件經濟學 軟件度量學,兩種程序設計方法,程序設計的兩次飛躍 結構化程序設計 程序=數據結構+算法 面向對象程序設計 程序 = 對象 + 消息,面向過程和面向對象的編碼,兩類軟件工程方法,傳統(tǒng)軟件工程 軟件分析 總體設計 詳細設計 面向過程的編碼 測試 面向對象軟件工程 軟件分析與對象抽取 對象詳細設計 面向對象的編碼 測試,軟件工程的應用,軟件工程指導中小型軟件 軟件工程指導大型軟件 軟件工程的成就 軟件工程的局限,第二章 軟件開發(fā)模型,傳統(tǒng)開發(fā)模型 瀑布模型(waterfall model) 快速原型模型(rapid prototype model) 演化開發(fā)模型 增量模型(incremental model) 螺旋模型(spiral model) 面向對象開發(fā)模型 構件集成模型(component integration model) 形式化開發(fā)模型 轉換模型(transformational model) 凈室模型(cleanroommodel),軟件生存周期,計劃時期 問題定義 可行性分析 開發(fā)時期 需求分析 軟件設計 編碼 測試 運行時期 軟件維護,瀑布模型,計劃時期,開發(fā)時期,運行時期,瀑布模型,特點 階段的順序性和依賴性 推遲實現的觀點 質量保證 存在問題 不適合需求模糊的系統(tǒng),快速原型模型,快速原型模型,特點 快速開發(fā)工具 循環(huán) 低成本 種類 漸進型 拋棄型,增量模型,規(guī)格說明,設計,實現和集成,交付客戶,規(guī)格說明,設計,實現和集成,交付客戶,規(guī)格說明,設計,實現和集成,交付客戶,規(guī)格說明,設計,實現和集成,交付客戶,增量1,增量2,增量3,增量n,增量模型,增量 小而可用的軟件 特點 在前面增量的基礎上開發(fā)后面的增量 每個增量的開發(fā)可用瀑布或快速原型模型 迭代的思路,螺旋模型,螺旋模型,特點 瀑布模型+快速原型+風險分析 迭代過程 一個螺旋式周期 確定目標,選擇方案,選定完成目標的策略 風險角度分析該策略 啟動一個開發(fā)階段 評價前一步的結果,計劃下一輪的工作,構件集成模型,構件集成模型,特點 面向對象 基于構件庫 融合螺旋模型特征 支持軟件開發(fā)的迭代方法 軟件重用,面向對象的基本概念,對象Object 類Class 繼承Inheritance 消息Message 面向對象 對象+類+繼承+消息通信,對象Object,客觀世界中的實體 狀態(tài)(靜態(tài)屬性 Attributes) 操作(動態(tài)行為 Methods) 對象:= Identifier Method Set Data Structure Message Interface,對象的特點,以數據為中心 對象是主動的 實現數據封裝 本質上有并行性 模塊獨立性好,類Class和實例Instance,類 相同屬性和行為的對象的抽象 實例 特定類所描述的一個具體對象,子類直接繼承父類的數據和操作 繼承的傳遞性,單繼承、多重繼承,繼承(Inheritance),家具,桌子,椅子,衣柜,床,椅子的實例,多態(tài)性Polymorphism,概念 不同類層次共享一個方法名 相同的參數特征和返回值類型 多種不同實現 C+中虛函數實現 動態(tài)聯編,重載Overloading,函數重載 同一作用域 多個名字相同的函數 參數特征不同 靜態(tài)聯編 運算符重載,消息Message,對象間的交互手段 形式: Message:dest,op,para Destination Object Operation Parameters,轉換模型,轉換模型,特點 形式化軟件開發(fā)方法 形式化需求規(guī)格說明 變換技術 程序自動生成技術 確保正確,凈室模型,需求 收集,盒結構 規(guī)約,形式化 設計,統(tǒng)計性使 用測試,正確性 證明,代碼生成 與檢查,測試計劃,認證,需求 收集,盒結構 規(guī)約,形式化 設計,統(tǒng)計性使 用測試,正確性 證明,代碼生成 與檢查,測試計劃,認證,需求 收集,盒結構 規(guī)約,形式化 設計,統(tǒng)計性使 用測試,正確性 證明,代碼生成 與檢查,測試計劃,認證,增量1,增量2,增量n,凈室模型,凈室思想 在分析和設計階段消除錯誤 在“潔凈”狀態(tài)下實現軟件制作 形式化 盒結構表示分析和設計 正確性驗證 增量模型,小結,軟件開發(fā)模型是不斷發(fā)展的 各種軟件開發(fā)模型各有優(yōu)缺點 選用時不必拘泥與某種模型 可組合多種模型 也可根據實際創(chuàng)建新的模型,第三章 軟件需求分析,需求分析的任務與步驟 需求獲取的常用方法 分析建模 軟件需求說明 結構化分析方法 面向對象分析方法,需求分析的任務和步驟,需求分析的任務 建立分析模型 編寫需求說明 需求分析的步驟 需求獲取 需求提煉 需求描述 需求驗證,需求獲取的常用方法,聯合分析小組 用戶代表、領域專家和系統(tǒng)分析員 客戶訪談 充分準備,尋找共同語言 循循序漸進、逐步逼近 問題分析與確認 多個來回,分析建模,結構化分析模型 面向對象分析模型 分析模型描述工具 DFD、DD和PSPEC CFD、CSPEC和STD E-R圖 用例圖,對象-關系圖,對象-行為圖,結構化分析模型,面向對象分析模型,分析模型描述工具,結構化分析工具 DFD、DD和PSPEC CFD、CSPEC和STD E-R圖 面向對象分析工具 用例圖,類對象圖 對象-關系圖 對象-行為圖,數據流圖DFD,描述系統(tǒng)邏輯模型 信息在系統(tǒng)中的流動和處理 用途 交流信息的工具 結構化分析和設計的工具,數據流圖DFD,組成符號 圓框代表加工 箭頭代表數據流向 方框代表源點和終點 雙杠表示數據文件或數據庫 分層 從高層到低層 分解前后的數據流必須一致 命名 數據流 處理,領書單 進書通知,購書單 缺書單,DFD練習售書系統(tǒng),領書單 進書通知,進書通知,購書單 缺書單,DFD練習售書系統(tǒng),F1教材存量表,F2缺書登記表,數據字典DD,DFD中所有元素的定義的集合 內容 數據流 數據流分量 數據存儲 處理(一般不用DD描述),數據字典DD,定義數據的方法 自頂向下分解數據 數據元素的組合方式 順序:A+B 選擇:A|B 重復:1A5 可選: (A),數據字典DD,DD的用途 分析階段的交流工具 包含控制信息 數據庫設計的基礎 例子 P41例3.6,加工說明,加工說明PSPEC 說明DFD中的每個加工 描述工具 結構化語言 判定表 判定樹,加工說明例子,結構化語言 P42-43, 例3.7,3.8 判定樹 P44, 例3.9 判定表 P44, 例3.9,CFD和CSPEC,適合實時系統(tǒng)的分析 與DFD和PSPEC類似 和DFD與PSPEC配合使用 表示控制流和控制加工,CFD和DFD的關系,數據條件,控制輸入,輸出數據,控制輸入,CFD的符號表示,DFD和CFD例子-DFD,DFD和CFD例子-CFD,STD,描述軟件狀態(tài)變遷 符號表示 矩形-系統(tǒng)狀態(tài) 箭頭-狀態(tài)轉變方向 規(guī)則表達式-事件/觸發(fā)行為,STD例子,E-R圖,用于對復雜數據的用作數據分析和建模 實體、屬性和關系 組成符號,0:1,1:1,0:m,1:m,E-R圖例子,用例圖,用例:系統(tǒng)和外部角色的交互 符號表示:,Use Case圖例子,用例之間的關系,擴展關系 使用關系 組合關系,對象-關系圖,從E-R圖演變而來 描述對象間關系,對象-行為圖,描述對象的動態(tài)行為 對象狀態(tài)轉換圖 事件軌跡圖 事件流圖,對象狀態(tài)轉換圖例子,事件軌跡圖例子,打印機忙 保存文件,打印機就緒 打印文件,打印文件,打印文件,計算機,打印服務器,打印隊列,打印機,事件流圖例子,軟件需求說明(SRS),引言 信息描述 功能描述 行為描述 質量保證 接口描述 其它,結構化分析方法,基本步驟 自頂向下,功能分解 分層DFD 由后向前,定義數據和加工 DD, PSPEC 根據需要,分析復雜數據和動態(tài)模型 E-R圖,CFD,CSPEC,STD 編寫SRS,DFD的復審,父圖和子圖不平衡 未區(qū)分局部文件和局部外部項 分解的速度太快 不遵守加工編號規(guī)則,面向對象分析方法,基本步驟 定義系統(tǒng)的用例 領域分析,建立類對象模型 建立對象-關系模型 建立對象-行為模型 編寫SRS,定義用例,回答問題發(fā)現角色 使用系統(tǒng)主要功能的人是誰? 需要借助于系統(tǒng)完成日常工作的人是誰? 誰來維護、管理系統(tǒng),保證系統(tǒng)正常工作? 系統(tǒng)控制的硬件設備有哪些? 系統(tǒng)需要和哪些其它系統(tǒng)接口? 對系統(tǒng)產生的結果感興趣的人和事是哪些?,定義用例,回答問題發(fā)現用例 角色需要從系統(tǒng)中獲得哪種功能?需要角色做什么? 角色需要讀取、產生、刪除、修改或存儲系統(tǒng)中的某種信息嗎? 系統(tǒng)中發(fā)生的事件需要通知角色嗎?角色需要通知系統(tǒng)某件事嗎?這些事件能干什么? 系統(tǒng)需要輸入/輸出的是什么信息?這些輸入/輸出信息從哪兒來 ?到哪兒去? 系統(tǒng)當前的實現要解決的問題是什么?,領域分析,目的 發(fā)現或創(chuàng)建可廣泛應用的類,以便復用 分析特定的應用領域 形式 公共對象、類、子集合和框架等,類對象建模(一),確定分析模型中的類對象 考察系統(tǒng)用例 匯總名詞、名詞短語 得到候選對象 確定類對象 必要的信息、需求、服務 多個屬性、公共操作,類對象建模(二),定義類結構與層次 一般-特殊 整體-部分 定義主題和子系統(tǒng) 高層抽象,例子,建立對象關系模型,步驟 復審需求描述和用例陳述 找出表示關系的動詞或動詞短語 用線連接起來,箭頭表示方向 給連接命名,標上基數,對象-關系圖例子,建立對象行為模型,基本過程 評估用例,理解系統(tǒng)中的交互序列 找出驅動交互序列的事件 為每個用例創(chuàng)建事件軌跡 為對象創(chuàng)建狀態(tài)轉換圖,第四章 軟件設計概述,軟件設計的任務 軟件設計的基本概念 模塊化設計 設計需要處理的問題 設計文檔及其復審,軟件設計的任務,分析模型 設計模型 設計文檔 回答How to do? 可以分為概要設計、詳細設計 軟件設計包括 數據設計 體系結構設計 接口設計 過程設計,軟件設計的任務,數據設計 信息模型 軟件數據結構 體系結構設計 定義軟件部件間的關系 接口設計 軟件內部、外部及與人之間的通信 過程設計 軟件組件的過程性描述,軟件設計的基本概念,模塊(module)與構件(component) 模塊:定義輸入、輸出和特性的程序實體 構件:可重復使用的軟件組件 抽象(abstract)與細化(refinement) 抽象:分層次考慮和處理問題(數據和過程) 細化:從高到低的逐步分解過程 信息隱藏 對其它模塊隱藏模塊內部的數據和過程 軟件復用 Design with reuse, design for reuse,模塊化設計(modular design),分解(decomposition) 模塊獨立性(module independence) 自頂向下(topdown design) 自底向上(bottomup design),分解(decomposition),C (P1+P2)C (P1)+C (P2) E (P1+P2)E (P1)+E (P2) C為問題的復雜度,E為解題需要的工作量,模塊獨立性(module independence),內聚(cohesion) 模塊內部各成分之間 耦合(coupling) 一個模塊與其它模塊之間 模塊的獨立性高 塊內聯系強 塊間聯系弱,內聚, ,弱 強,低內聚 中內聚 高內聚,內聚 cohesion,.偶然性內聚 coincidental cohesion .邏輯性內聚 logical cohesion .時間性內聚 temporal cohesion .過程性內聚 procedural cohesion .通訊性內聚 communicational cohesion .順序性內聚 sequential cohesion .功能性內聚 functional cohesion,邏輯性模塊,耦合 coupling,1.非直接耦合 no direct coupling 2.數據耦合 data coupling 3.特征耦合 stamp coupling 4.控制耦合 control coupling 5.外部耦合 external coupling 6.公共耦合 common coupling 7.內容耦合 content coupling,弱耦合,公共耦合,自定向下和自底向上設計,自頂向下 頂層開始 逐步分解 由底向上 選擇關鍵部分先設計 擴展到整個系統(tǒng),設計需要處理的問題,協同設計 誰最合適設計系統(tǒng)的某一方面? 如何使組內成員相互了解別人的設計? 如何協調設計組件使整個系統(tǒng)統(tǒng)一? 用戶界面設計 讓用戶駕馭軟件,不是軟件駕馭用戶 減少用戶的記憶 保持界面的一致性 并發(fā)系統(tǒng)設計 怎樣確保同時執(zhí)行的組件間對共享數據的一致性,并發(fā)處理(順序執(zhí)行),1、 組件1查詢X是否為空。 2、 組件1被告知X不為空。 3、 組件2查詢X是否為空。 4、 組件2被告知X不為空。 5、 組件1出棧,刪除最后一個元素。 6、 組件2想出棧,但X已為空,系統(tǒng)進入非法狀態(tài)。,并發(fā)處理,1、 組件1詢問棧X是否為空。 2、 組件1被告知棧X不為空。 3、 組件2詢問棧X是否為空。 4、 組件2被告知棧X不為空。 5、 組件1出棧,刪去最后一個元素,并鎖住棧X。 6、 組件2想出棧,但被告知X已上鎖。 7、 另一個組件加了一個元素到棧X中。 8、 組件2被告知X已開鎖(由于外部進程或者因為組件2 再次嘗試) 9、 組件2出棧。,軟件設計文檔,軟件設計說明書 1) 范圍 2) 數據設計 3) 體系結構設計 4) 接口設計 5) 模塊的過程設計 6) 其他 包括測試的考慮,確保設計滿足所有需求,設計約束和一些特殊注解等內容。,設計復審(design review),及早發(fā)現設計中的缺陷 差錯的傳播 復審的內容 概要設計復審 系統(tǒng)的總體結構,模塊劃分,內外接口 詳細設計復審 各個模塊的具體設計,設計復審(design review),復審的方式 Formal review Design review meeting Informal review Walk-through,第五章 傳統(tǒng)的設計方法,結構化設計模型 結構化設計方法 過程設計 Jackson方法,PSPEC,結構化設計的內容,數據對象描述,CFD,DFD,E-R,DD,CSPEC,過程設計,接口設計,體系結構設計,數據設計,結構化設計的內容,結構設計概要設計 體系結構設計 SC圖 接口設計 SC圖 數據庫設計 物理數據模型 過程設計詳細設計 模塊的處理過程 N-S圖,PAD,PDL等,描述工具SC圖,SC圖的組成符號 (P88) 矩形框來表示模塊 帶箭頭的連線表示模塊間的調用關系 傳入和傳出模塊的數據流 SC圖中的模塊符號 傳入 傳出 變換 源 漏 控制,SC圖中的模塊調用,簡單調用 選擇調用 循環(huán)調用,A,B,C,D,A,B,C,面向數據流的設計方法,DFD圖的類型 變換型結構 事務型結構 從DFD圖到SC圖的映射 復審DFD圖,必要時可再次進行修改或細化 鑒別DFD圖的結構特征:事務?變換? 按照規(guī)則,把DFD圖為初始的SC圖 改進初始的SC圖,變換結構的DFD,傳入,傳出,信息,傳入流,傳出流,變換流,時間,事務型結構DFD,事務中心,接受路徑,動作路徑,同時存在兩類結構,傳入,變換,傳出,事務中心,變換分析,劃分DFD圖的邊界 建立初始SC圖的框架 頂層都只含一個用于控制的主模塊 第一層包括傳入、傳出和中心變換三個模塊 分解SC圖的各個分支 分解實質上是“映射”,例子劃分DFD,a,b,c,d,e,p,r,w,u,v,傳入部分,變換中心,傳出部分,第一級分解,c,e,c,e,u,w,u,w,傳入分支的分解,c,e,c,e,b,b,c,a,a,b,d,d,b,傳出分支的分解,w,u,w,u,u,v,v,變換中心的分解,e,p,c,p,r,r,w,u,初始SC圖,事務分析,在DFD圖上確定邊界 事務中心 接受部分(包括接受路徑) 發(fā)送部分(包括全部動作路徑) 畫出S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國USB無線數字電視棒市場調查研究報告
- 2025年枕頭項目合作計劃書
- 簡單加減法游戲挑戰(zhàn)試題及答案
- 《橋梁與道路工程》課件
- 2025年防護用品銷售合同
- 《連翹薄荷》課件
- 2025年家電配線組件項目建議書
- 2025二手車買賣合同(無中介版)
- 第九章不等式與不等式組第41-47課時導學案
- 2025年離子敏傳感器項目發(fā)展計劃
- 殘值車輛收購合同協議
- 2025年全國防災減災日主題教育班會課件
- 2024年新人教版四年級數學下冊《教材練習15練習十五附答案》教學課件
- 《馬克思主義發(fā)展史》第六章 毛澤東思想是馬克思主義在中國發(fā)展的第一個重大成果
- 粵教版地理七年級下冊全冊課件
- 工商企業(yè)管理專業(yè)模擬實訓報告
- 八年級英語15篇完形填空(附答案)
- 《馬克思主義與社會科學方法論》課件第四講 社會矛盾研究方法
- 會寶嶺選礦廠集中控制技術方案
- 第13講巧解弦圖與面積
- 畢業(yè)設計(論文)-CK6150總體及縱向進給和尾座部件的設計
評論
0/150
提交評論