




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程原理、方法與應用軟件工程-原理、方法與應用課程安排n理論n內容:基本原理、方法和技術n形式:講授、自學、討論n實踐n內容:構造一個應用系統(包括分析、設計、編碼、測試)n形式:分組、分階段文檔、編碼、集成軟件工程的主要內容n軟件工程的基本概念n軟件開發模型n軟件開發各階段的任務、技術、方法n傳統方法、面向對象方法n軟件工程管理n軟件質量保證n軟件工程環境第一章 緒論n軟件與軟件危機n軟件工程學n傳統軟件工程和面向對象軟件工程n軟件工程的應用軟件n程序、軟件與軟件產品獨唱-小合唱-合唱-萬人大合唱 | | |簡單程序 較復雜程序 軟件n軟件定義: 軟件=程序+數據+文檔程序:按事先設計的
2、功能和性能需求執行的指令序列數據:是程序能正常操縱信息的數據結構文檔:與程序開發、維護和使用有關的圖文材料 軟件的特征n軟件是邏輯的,而不是物理的n軟件開發與人關系密切n軟件開發成本大n軟件生產是簡單的拷貝n軟件不會磨損和老化n軟件受環境影響大n軟件維護易產生新的問題軟件開發的發展過程計算機應用發展軟件數量多規模大軟件成本高質量低個體化軟件開發方法軟件維護困難軟件危機軟件工程軟件危機n定義計算機軟件的開發和維護過程所遇到的一系列嚴重問題 n表現n對軟件開發成本和進度的估算很不準確n用戶很不滿意n質量很不可靠n沒有適當的文檔n軟件成本比重上升n供不應求:軟件開發生產率跟不上計算機應用迅速深入的趨
3、勢 硬件/軟件成本變化趨勢硬件軟件100% 0%19551970202X軟件技術進步落后于需求增長軟件危機n原因n客觀:軟件本身特點n邏輯部件n規模龐大n主觀:不正確的開發方法n忽視需求分析n錯誤認為:軟件開發=程序編寫n輕視軟件維護軟件危機n解決途徑n組織管理n工程項目管理方法n技術措施n軟件開發技術與方法n軟件工具軟件工程學的范疇n軟件工程學n指導計算機軟件開發和維護的工程學科 n工程管理+開發技術n軟件開發技術n軟件開發方法學n軟件工具n軟件工程環境n軟件工程管理n軟件管理學n軟件經濟學n軟件度量學兩種程序設計方法n程序設計的兩次飛躍n結構化程序設計n程序=數據結構+算法n面向對象程序設
4、計n程序 = 對象 + 消息 面向過程和面向對象的編碼存款取款利 息 結算帳 戶 余額帳戶余額利息結算存 款取 款兩類軟件工程方法n傳統軟件工程n軟件分析 總體設計 詳細設計 面向過程的編碼 測試 n面向對象軟件工程n軟件分析與對象抽取 對象詳細設計 面向對象的編碼 測試 軟件工程的應用n軟件工程指導中小型軟件n軟件工程指導大型軟件n軟件工程的成就n軟件工程的局限第二章 軟件開發模型n傳統開發模型n瀑布模型(waterfall model)n快速原型模型(rapid prototype model)n演化開發模型n增量模型(incremental model)n螺旋模型(spiral mode
5、l)n面向對象開發模型n構件集成模型(component integration model) n形式化開發模型n轉換模型(transformational model)n凈室模型(cleanroommodel)軟件生存周期n計劃時期n問題定義n可行性分析n開發時期n需求分析n軟件設計n編碼n測試n運行時期n軟件維護瀑布模型問題定義可行性研究需求分析軟件設計編碼測試維護計劃時期開發時期運行時期瀑布模型n特點n階段的順序性和依賴性n推遲實現的觀點n質量保證n存在問題n不適合需求模糊的系統快速原型模型需求分析原型開發最終系統設計原型評價最終系統實現用戶反饋快速原型模型n特點n快速開發工具n循環n低
6、成本n種類n漸進型n拋棄型增量模型規格說明設計實現和集成交付客戶規格說明設計實現和集成交付客戶規格說明設計實現和集成交付客戶規格說明設計實現和集成交付客戶增量1增量2增量3增量n增量模型n增量n小而可用的軟件n特點n在前面增量的基礎上開發后面的增量n每個增量的開發可用瀑布或快速原型模型n迭代的思路螺旋模型螺旋模型n特點n瀑布模型+快速原型+風險分析n迭代過程n一個螺旋式周期 n確定目標,選擇方案,選定完成目標的策略 n風險角度分析該策略 n啟動一個開發階段 n評價前一步的結果,計劃下一輪的工作 構件集成模型構件集成模型n特點n面向對象n基于構件庫n融合螺旋模型特征n支持軟件開發的迭代方法 n軟
7、件重用面向對象的基本概念n對象Objectn類Classn繼承Inheritancen消息Message n面向對象n對象+類+繼承+消息通信對象Objectn客觀世界中的實體n狀態(靜態屬性 Attributes)n操作(動態行為 Methods)n對象:=nIdentifiernMethod SetnData StructurenMessage Interface對象的特點n以數據為中心n對象是主動的n實現數據封裝n本質上有并行性n模塊獨立性好類Class和實例Instancen類n相同屬性和行為的對象的抽象n實例n特定類所描述的一個具體對象n子類直接繼承父類的數據和操作n繼承的傳遞性,單
8、繼承、多重繼承繼承(Inheritance)家具桌子椅子衣柜床椅子的實例多態性Polymorphismn概念n不同類層次共享一個方法名n相同的參數特征和返回值類型n多種不同實現nC+中虛函數實現n動態聯編重載Overloadingn函數重載n同一作用域n多個名字相同的函數n參數特征不同n靜態聯編n運算符重載消息Messagen對象間的交互手段n形式:nMessage:dest,op,paranDestination ObjectnOperationnParameters轉換模型形式化規格說明與需求比較后修正變換2變換1變換n測試形式化開發記錄系統需求目標系統轉換模型n特點n形式化軟件開發方法
9、n形式化需求規格說明 n變換技術n程序自動生成技術 n確保正確凈室模型需求收集盒結構規約形式化設計統計性使用測試正確性證明代碼生成與檢查測試計劃認證需求收集盒結構規約形式化設計統計性使用測試正確性證明代碼生成與檢查測試計劃認證需求收集盒結構規約形式化設計統計性使用測試正確性證明代碼生成與檢查測試計劃認證增量1增量2增量n凈室模型n凈室思想n在分析和設計階段消除錯誤n在“潔凈”狀態下實現軟件制作n形式化n盒結構表示分析和設計n正確性驗證n增量模型小結n軟件開發模型是不斷發展的n各種軟件開發模型各有優缺點n選用時不必拘泥與某種模型n可組合多種模型n也可根據實際創建新的模型第三章 軟件需求分析n需求
10、分析的任務與步驟 n需求獲取的常用方法 n分析建模 n軟件需求說明 n結構化分析方法n面向對象分析方法需求分析的任務和步驟n需求分析的任務n建立分析模型 n編寫需求說明 n需求分析的步驟n需求獲取 n需求提煉 n需求描述 n需求驗證 需求獲取的常用方法n聯合分析小組 n用戶代表、領域專家和系統分析員n客戶訪談 n充分準備,尋找共同語言 n循循序漸進、逐步逼近 n問題分析與確認 n多個來回分析建模n結構化分析模型n面向對象分析模型n分析模型描述工具nDFD、DD和PSPEC nCFD、CSPEC和STD nE-R圖 n用例圖,對象-關系圖,對象-行為圖 結構化分析模型加工說明數據對象說明CFD,
11、STD圖DFD圖E-R圖DD控制說明面向對象分析模型屬性、操作、協作者對象-行為模型對象-關系模型類/對象模型使用實例分析模型描述工具n結構化分析工具nDFD、DD和PSPEC nCFD、CSPEC和STD nE-R圖 n面向對象分析工具n用例圖,類對象圖n對象-關系圖n對象-行為圖數據流圖DFDn描述系統邏輯模型n信息在系統中的流動和處理n用途n交流信息的工具n結構化分析和設計的工具 數據流圖DFDn組成符號n圓框代表加工n箭頭代表數據流向n方框代表源點和終點n雙杠表示數據文件或數據庫n分層n從高層到低層n分解前后的數據流必須一致n命名n數據流n處理領書單 進書通知 購書單 缺書單 DFD練
12、習售書系統學生教材購銷系統書 庫保 管員領書單 進書通知 進書通知 購書單缺書單 DFD練習售書系統 1銷售 2采購書庫保 管員學生F1教材存量表 F2缺書登記表 數據字典DDnDFD中所有元素的定義的集合n內容n數據流n數據流分量n數據存儲n處理(一般不用DD描述)數據字典DDn定義數據的方法n自頂向下分解數據n數據元素的組合方式n順序:A+Bn選擇:A|Bn重復:1A5n可選: (A)數據字典DDnDD的用途n分析階段的交流工具n包含控制信息n數據庫設計的基礎n例子nP41加工說明n加工說明PSPECn說明DFD中的每個加工n描述工具n結構化語言n判定表n判定樹加工說明例子n結構化語言nP
13、42-43, n判定樹nP44, n判定表nP44, CFD和CSPECn適合實時系統的分析n與DFD和PSPEC類似n和DFD與PSPEC配合使用n表示控制流和控制加工CFD和DFD的關系 數據條件控制輸入加工激活信號控制輸出輸入數據加工模型PSPEC控制模型CSPEC輸出數據 控制輸入CFD的符號表示控制信息或事件引用控制說明DFD和CFD例子-DFD信號半分鐘數據光電管采集計數傳送工控機處理實時數據顯示班數據處理半小時數據班數據DFD和CFD例子-CFD翻屏人工驅動信息時鐘半小時半分鐘某型號累加物品經過信號半分鐘數據光電管采集計數傳送工控機處理實時數據顯示班數據處理半小時數據班數據STD
14、n描述軟件狀態變遷n符號表示n矩形-系統狀態n箭頭-狀態轉變方向n規則表達式-事件/觸發行為狀 態1狀 態2事件/觸發行為STD例子20秒到/翻屏生成最新數據/翻屏半小時到/工控處理半分鐘到/傳送空閑/采集物品經過/計數采集PLC計數傳送工控處理實時翻屏E-R圖n用于對復雜數據的用作數據分析和建模n實體、屬性和關系n組成符號0:11:10:m1:mE-R圖例子電話機生產廠商經銷商用戶生產購買使用經銷用例圖n用例:系統和外部角色的交互n符號表示: 系統名稱系統用例名用例角色關聯Use Case圖例子保險商務系統簽定保險單銷售統計客戶統計客戶保險銷售員用例之間的關系n擴展關系n使用關系n組合關系擴
15、展簽保險單簽汽車購買契約使用使用簽保險單簽汽車保險單簽房屋保險單對象-關系圖n從E-R圖演變而來n描述對象間關系學生書出版商購買來自 1:1 0:m 1:1 1:1 對象-行為圖n描述對象的動態行為n對象狀態轉換圖n事件軌跡圖n事件流圖對象狀態轉換圖例子加紙紙用完故障修復打印故障打印完成接到打印命令就緒打印缺紙故障事件軌跡圖例子打印機忙保存文件打印機就緒打印文件打印文件打印文件計算機打印服務器打印隊列打印機事件流圖例子打印機忙保存文件打印機就緒打印文件打印文件計算機打印隊列打印服務器打印機軟件需求說明(SRS)n引言n信息描述n功能描述n行為描述n質量保證n接口描述n其它結構化分析方法n基本步
16、驟n自頂向下,功能分解n分層DFDn由后向前,定義數據和加工nDD, PSPECn根據需要,分析復雜數據和動態模型nE-R圖,CFD,CSPEC,STDn編寫SRSDFD的復審n父圖和子圖不平衡n未區分局部文件和局部外部項n分解的速度太快n不遵守加工編號規則面向對象分析方法n基本步驟n定義系統的用例n領域分析,建立類對象模型n建立對象-關系模型n建立對象-行為模型n編寫SRS定義用例n回答問題發現角色n使用系統主要功能的人是誰? n需要借助于系統完成日常工作的人是誰? n誰來維護、管理系統,保證系統正常工作? n系統控制的硬件設備有哪些? n系統需要和哪些其它系統接口? n對系統產生的結果感興
17、趣的人和事是哪些? 定義用例n回答問題發現用例n角色需要從系統中獲得哪種功能?需要角色做什么? n角色需要讀取、產生、刪除、修改或存儲系統中的某種信息嗎? n系統中發生的事件需要通知角色嗎?角色需要通知系統某件事嗎?這些事件能干什么? n系統需要輸入/輸出的是什么信息?這些輸入/輸出信息從哪兒來 ?到哪兒去? n系統當前的實現要解決的問題是什么? 領域分析 n目的n發現或創建可廣泛應用的類,以便復用 n分析特定的應用領域 n形式n公共對象、類、子集合和框架等類對象建模(一)n確定分析模型中的類對象n考察系統用例n匯總名詞、名詞短語n得到候選對象n確定類對象n必要的信息、需求、服務n多個屬性、公
18、共操作類對象建模(二)n定義類結構與層次n一般-特殊n整體-部分n定義主題和子系統n高層抽象例子電話話筒按鍵連接線話機人電話人教師大學生小學生學生中學生建立對象關系模型n步驟n復審需求描述和用例陳述n找出表示關系的動詞或動詞短語n用線連接起來,箭頭表示方向n給連接命名,標上基數對象-關系圖例子:0::0:1:m0::0:部門流水線工序材料在制品:不良品指標數據:規格實時數據建立對象行為模型n基本過程n評估用例,理解系統中的交互序列n找出驅動交互序列的事件n為每個用例創建事件軌跡n為對象創建狀態轉換圖第四章 軟件設計概述n軟件設計的任務n軟件設計的基本概念n模塊化設計n設計需要處理的問題n設計文
19、檔及其復審軟件設計的任務n分析模型 設計模型 設計文檔n回答How to do?n可以分為概要設計、詳細設計n軟件設計包括n數據設計n體系結構設計n接口設計n過程設計軟件設計的任務n數據設計n信息模型 軟件數據結構n體系結構設計n定義軟件部件間的關系n接口設計n軟件內部、外部及與人之間的通信n過程設計n軟件組件的過程性描述軟件設計的基本概念n模塊(module)與構件(component)n模塊:定義輸入、輸出和特性的程序實體n構件:可重復使用的軟件組件n抽象(abstract)與細化(refinement)n抽象:分層次考慮和處理問題(數據和過程)n細化:從高到低的逐步分解過程n信息隱藏n對
20、其它模塊隱藏模塊內部的數據和過程n軟件復用nDesign with reuse, design for reuse 模塊化設計(modular design)n分解(decomposition)n模塊獨立性(module independence)n自頂向下(topdown design)n自底向上(bottomup design)分解(decomposition)C (P1+P2)C (P1)+C (P2)E (P1+P2)E (P1)+E (P2) C為問題的復雜度,E為解題需要的工作量 模塊數接口成本最小成本區M軟件開發工作量總成本模塊成本模塊獨立性(module independenc
21、e)n內聚(cohesion)n模塊內部各成分之間n耦合(coupling)n一個模塊與其它模塊之間n模塊的獨立性高 n塊內聯系強 n塊間聯系弱 內聚 弱 強低內聚中內聚高內聚 內聚 cohesionn.偶然性內聚 coincidental cohesionn.邏輯性內聚 logical cohesionn.時間性內聚 temporal cohesionn.過程性內聚 procedural cohesionn.通訊性內聚 communicational cohesionn.順序性內聚 sequential cohesionn.功能性內聚 functional cohesion邏輯性模塊 讀入分
22、數平均/最高?計算平均分計算最高分輸出結果耦合 couplingno direct coupling2.數據耦合data coupling3.特征耦合 st coupling4.控制耦合control coupling 5.外部耦合 external coupling6.公共耦合 common coupling7.內容耦合 content coupling弱耦合數據耦合非直接耦合模塊2模塊1模塊4模塊3特征耦合(參數表傳遞數據結構)公共耦合自定向下和自底向上設計自頂向下頂層開始逐步分解由底向上選擇關鍵部分先設計擴展到整個系統設計需要處理的問題n協同設計n誰最合適設計系統的某一方面? n如何使組
23、內成員相互了解別人的設計? n如何協調設計組件使整個系統統一? n用戶界面設計n讓用戶駕馭軟件,不是軟件駕馭用戶 n減少用戶的記憶 n保持界面的一致性 n并發系統設計n怎樣確保同時執行的組件間對共享數據的一致性 并發處理(順序執行)1、 組件1查詢X是否為空。2、 組件1被告知X不為空。3、 組件2查詢X是否為空。4、 組件2被告知X不為空。5、 組件1出棧,刪除最后一個元素。6、 組件2想出棧,但X已為空,系統進入非法狀態。 并發處理1、 組件1詢問棧X是否為空。2、 組件1被告知棧X不為空。3、 組件2詢問棧X是否為空。4、 組件2被告知棧X不為空。5、 組件1出棧,刪去最后一個元素,并鎖
24、住棧X。6、 組件2想出棧,但被告知X已上鎖。7、 另一個組件加了一個元素到棧X中。8、 組件2被告知X已開鎖(由于外部進程或者因為組件2 再次嘗試)9、 組件2出棧。 軟件設計文檔n軟件設計說明書n1) 范圍 n2) 數據設計 n3) 體系結構設計n4) 接口設計 n5) 模塊的過程設計 n6) 其他 包括測試的考慮,確保設計滿足所有需求,設計約束和一些特殊注解等內容。 設計復審(design review)n及早發現設計中的缺陷n差錯的傳播n復審的內容n概要設計復審 n系統的總體結構,模塊劃分,內外接口 n詳細設計復審 n各個模塊的具體設計 設計復審(design review)n復審的方
25、式nFormal reviewnDesign review meetingnInformal reviewnWalk-through第五章 傳統的設計方法n結構化設計模型n結構化設計方法n過程設計nJackson方法PSPEC結構化設計的內容數據對象描述CFDDFDE-RDDCSPEC過程設計 接口設計體系結構設計數據設計結構化設計的內容n結構設計概要設計n體系結構設計nSC圖n接口設計nSC圖n數據庫設計n物理數據模型n過程設計詳細設計n模塊的處理過程nN-S圖,PAD,PDL等描述工具SC圖nSC圖的組成符號 (P88)n矩形框來表示模塊 n帶箭頭的連線表示模塊間的調用關系n傳入和傳出模塊
26、的數據流 nSC圖中的模塊符號n傳入n傳出n變換n源n漏n控制 SC圖中的模塊調用n簡單調用 n選擇調用 n循環調用ABCDABC面向數據流的設計方法nDFD圖的類型 n變換型結構 n事務型結構 n從DFD圖到SC圖的映射 n復審DFD圖,必要時可再次進行修改或細化n鑒別DFD圖的結構特征:事務?變換?n按照規則,把DFD圖為初始的SC圖 n改進初始的SC圖 變換結構的DFD變換中心傳入傳出信息傳入流傳出流 變換流時間事務型結構DFD事務中心接受路徑動作路徑同時存在兩類結構傳入變換傳出事務中心變換分析變換分析n劃分DFD圖的邊界 n建立初始SC圖的框架n頂層都只含一個用于控制的主模塊 n第一層包括傳入、傳出和中心變換三個模塊 n分解SC圖的各個分支 n分解實質上是“映射” 例子劃分DFDPEDCBAWRUVQabcdeprwuv傳入部分變換中心傳出部分第一級分解MEMTMCMAc,ec,eu,wu,w傳入分支的分解GetEAtoBReadDDtoEReadABtoCGetBGetC MAc,ecebbcaabddb傳出分支的分解 WriteW UtoV Write V P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房買賣合同違約責任追究協議
- 財務報表風險敞口應對效果評估合同
- 材料疲勞斷裂數據校正合同
- 生態農業園區場地合作經營與產品銷售協議
- 邊疆地區古代商業貿易考古合同
- 高端裝備制造廠房租賃與智能化改造協議
- 大學刑法考試題及答案
- 群體健康策略課件
- 調研安全生產工作方案
- 安全總監個人述職報告3
- 2024年廣東省中考物理試卷(含答案逐題解析)
- 武術專業個人簡歷模板范文
- LD水電站智慧工程建設方案研究
- DB37-T 4384-2021 混凝土橋梁有效預應力無損檢測技術規程
- 竣工財務決算報表模板
- 2021利達JB-QG-LD988EL JB-QT-LD988EL 火災報警控制器 消防聯動控制器調試手冊
- 2024年中鐵(天津)軌道交通投資建設限公司運營管理人員招聘5人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 創傷中心匯報
- 裝配式結構吊裝施工計算書
- 2024安徽蕪湖市中江城建集團限公司下屬子公司社會招聘60人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 放射科疑難病例分析討論記錄
評論
0/150
提交評論