




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
軟件工程總復習GIS0902第1頁第1章概述1.1軟件危機產生原因消除路徑1.2軟件工程定義基本原理:7條軟件工程方法學:定義、三要素、分類第2頁第1章概述1.3軟件生命周期3個時期、若干階段1.4軟件過程瀑布模型快速原型模型增量模型螺旋模型噴泉模型RUP靈敏過程和極限編程微軟過程第3頁練習題開發軟件所需高成本和產品低質量之間有著尖銳矛盾,這種現象稱做()。A.軟件工程 B.軟件周期 C.軟件危機 D.軟件產生瀑布模型本質上是一個()模型。A.線性次序B.次序迭代C.線性迭代D.早期產品瀑布模型存在問題是()。A.用戶輕易參加開發 B.缺乏靈活性C.用戶與開發者易溝通D.適用可變需求第4頁練習題原型化方法是用戶和設計者之間執行一個交互組成,適合用于()系統。A.需求不確定性高 B.需求確定 C.管理信息 D.實時第5頁什么是軟件工程?軟件工程目標是什么?答:軟件工程是①將系統化、規范、可度量方法應用于軟件開發、運行和維護過程,即將工程化應用于軟件開發和管理之中,②對①中所選方法研究。目標:經濟開發出高質量軟件并有效維護它。第6頁指出瀑布模型中以下任務次序:驗收測試,項目計劃,單元測試,需求評審,成本預計,概要設計,詳細設計,系統測試,設計評審,編碼,需求規格說明書。答:項目計劃,成本預計,需求規格說明書,需求評審,概要設計,詳細設計,設計評審,編碼,單元測試,系統測試,驗收測試第7頁第二章可行性研究2.1任務項目定義可行性分析軟件計劃分類:經濟可行性、技術可行性、社會可行性、法律可行性、操作可行性2.2可行性研究過程復查系統規模和目標研究當前正在使用系統導出新系統高層邏輯模型第8頁第二章可行性研究4.深入定義問題5.導出和評價供選擇解法6.推薦行動方針7.草擬開發計劃8.書寫文檔提交審查第9頁第二章可行性研究2.3系統流程圖系統流程圖是概括地描繪物理系統傳統工具,即用圖形符號以黑盒子形式描繪組成系統每個部件(程序、文檔、數據庫、人工過程等)。第10頁第二章可行性研究2.4數據流圖數據流圖(DataFlowDiagram)是一個圖形化技術,它描繪信息流和數據從輸入移動到輸出過程中所經受變換。
數據流圖和數據字典(DataDictionary)共同組成了系統邏輯模型。數據流圖描繪系統邏輯模型,即對系統所完成功效進行描述。數據字典準確定義數據流圖中每個元素。第11頁第二章可行性研究數據流圖中主要圖形元素:數據加工(數據變換)數據源點或終點(外部實體)數據流數據存放文件第12頁第二章可行性研究數據流圖層次結構:在多層數據流圖中,頂層流圖僅包含一個加工,它代表被開發系統。它輸入流是該系統輸入數據,輸出流是系統所輸出數據底層流圖是指其加工不需再做分解數據流圖,它處于最底層中間層流圖則表示對其上層父圖細化。它每一加工可能繼續細化,形成子圖。第13頁第二章可行性研究2.5數據字典數據詞典與數據流圖配合,能清楚地表示數據處理要求詞條描述——對于在數據流圖中每一個被命名圖形元素,均加以定義,其內容有:名字,別名或編號,分類,描述,定義,位置,其它,等第14頁第二章可行性研究2.6成本/效益分析開發一個軟件系統是一個投資,期望未來取得更大經濟效益。經濟效益通常表現為降低運行費用或(和)增加收入。 第15頁練習題軟件可行性研究實質上是要進行一次()需求分析、設計過程。A、簡化、壓縮 B、詳細 C、徹底 D、深入可行性研究目標是()A、分析開發系統必要性 B、確定系統建設方案 C、分析系統風險 D、確定是否值得開發系統第16頁可行性研究是在(A)之前A、系統開發 B、測試 C、試運行 D、集成測試可行性研究需要時間長短取決于系統規模,普通來說,可行性研究成本只是預期總成本(C)。A、1% B、20% C、8% D、50%第17頁數據字典是用來定義()中各個成份詳細含義。A、程序流程圖B、功效結構圖 C、系統結構圖D、數據流圖數據流程圖是(A)方法中用于表示系統邏輯模型一個圖形工具。A、SA B、SD C、SP D、SC第18頁DFD中每個加工最少有(A)。A、一個輸入流或一個輸出流 B、一個輸入流和一個輸出流C、一個輸入流 D、一個輸出流第19頁(D)工具在軟件詳細設計過程中不采取。A、判定表 B、IPO圖 C、PDL D、DFD圖第20頁可行性研究匯報主要內容是什么?答:可行性研究主要包含以下幾個部分:(1)概述(2)技術可行性(3)項目成熟程度(4)市場需求情況和風險分析(5)投資估算及資金籌措(6)經濟與社會效益(7)綜合實力和產業基礎(8)項目實施進度計劃(9)其它尚需要說明必要方面(10)結論第21頁什么是數據流圖?其作用是什么?其中基本符號各表示什么含義?答:數據流圖:簡稱DFD,就是采取圖形方式來表示系統邏輯功效、數據在系統內部邏輯流向和邏輯變換過程,是結構化系統分析方法主要表示工具及用于表示軟件模型一個圖示方法。數據流圖基本符號意思:
1.矩形表示數據外部實體;
2.圓角矩形表示變換數據處理邏輯;
3.少右面邊矩形表示數據存放;4.箭頭表示數據流。第22頁什么是數據字典?其作用是什么?它有哪些條目?答:數據字典,主要用來描述數據流程圖中數據流、數據存放、處理過程和和數據源點/終點。作用:數據流程圖描述了系統邏輯結構,其中四個基本圖形元素含義無法在數據流程圖中詳細說明,所以數據流程圖需要與其它工具配合使用,數據字典就是這么工具之一。包含條目:數據流詞條數據元素詞條數據存放詞條數據加工處理詞條數據源點及終點詞條第23頁請依據以下業務描述繪制數據流圖。
樓宇服務系統能夠運行在小區內部寬帶網上,向樓宇服務員、住戶、樓長提供以下功效:(1)向住戶提供個人信息注冊功效、費用查詢、家政預約功效;(2)向樓長提供意見提交功效;(3)向樓宇服務員提供繳費管理、家政查詢、用戶查詢功效。第24頁第25頁第3章需求分析3.1需求分析任務p563.2獲取需求方法訪談面向數據流自頂向下求精簡易應用規格說明技術快速建立軟件原型3.3分析建模與規格說明分析建模:數據模型、功效模型和行為模型軟件需求規格說明:需求分析階段得到最主要文檔第26頁3.4實體-聯絡圖3.5數據規范化3.6狀態轉換圖狀態事件符號3.7其它圖形工具層次方框圖Warnier圖IPO圖3.8驗證軟件需求方法、工具第27頁練習題什么是需求分析?需求分析階段基本任務是什么?答:所謂"需求分析",是指對要處理問題進行詳細分析,搞清楚問題要求,包含需要輸入什么數據,要得到什么結果,最終應輸出什么。能夠說,“需求分析”就是確定要計算機“做什么”。任務:確定軟件項目標目標和范圍。調查使用者要求,分析軟件必須做什么,編寫需求規格說明書等它相關文檔,并進行必要需求審查。除此之外,還包含需求變更控制,需求風險控制,需求版本控制等對需求管理工作第28頁什么是結構化分析方法?該方法使用什么描述工具?答:結構化分析方法是面向數據流方法,所以,此方法研究關鍵是數據組成和數據流向和對數據加工處理。結構化分析方法用抽象模型概念,按照軟件內部數據傳遞、變換關系,自頂向下逐層分解,直至找到滿足功效要求全部可實現軟件元素為止描述工具:1系統流程圖2數據流程圖3數據字典4IPO圖5層次方框圖6實體—關系圖7狀態—變遷圖第29頁結構化分析方法經過哪些步驟來實現?答:1)
確定系統功效要求2)
確定系統數據要求3)
確定系統操作要求和界面要求4)
確定系統性能要求5)
確定系統運行要求6)
取得當前系統物理模型7)
抽象出當前系統邏輯模型8)
建立目標系統邏輯模型。9)
修正開發計劃10)假如需要則開發系統原型第30頁第5章總體設計5.1設計過程經典總體設計過程包含下述9個步驟:1.構想供選擇方案2.選取合理方案3.推薦最正確方案4.功效分解5.設計軟件結構6.設計數據庫7.制訂測試計劃8.書寫文檔9.審查和復審第31頁5.2設計原理p941、模塊化2、抽象3、逐步求精4、信息隱蔽和局部化5、模塊獨立第32頁5.2.6模塊獨立性度量標準1.耦合第33頁2.內聚內聚標志一個模塊內各個元素彼此結合緊密程度,它是信息隱藏和局部化概念自然擴展。設計時應該力爭做到高內聚,通常中等程度內聚也是能夠采取,而且效果和高內聚相差不多;不過,低內聚很壞,不要使用。第34頁5.3、設計啟發規則1、提升模塊獨立性2、模塊規模適中3、深度、寬度、扇入、扇出適當4、作用域在控制域內5、降低接口復雜程度6、單出口單入口,防止內容耦合7、模塊功效可預測第35頁5.4描繪軟件結構圖形工具層次圖和HIPO圖5.5面向數據流設計方法變換流事務流變換分析和事務分析步驟第36頁在SD方法中全方面指導模塊劃分最主要標準是?(模塊獨立性)第37頁什么是概要設計?有哪些基本任務?答:概要設計:依據用戶需求先確定軟件系統總體結構和總設計標準基本任務:構想供選擇方案。推薦最正確方案。功效分解,確定軟件結構。設計軟件結構。制訂測試計劃。數據設計。書寫文檔。包含總體設計規格說明書。用戶手冊。測試計劃。設計審查和復審。第38頁模塊內聚有哪幾個?模塊間耦合有哪幾個?答:內聚分為七種類型:巧合內聚——一個模塊執行多個完全互不相關動作,那么這個模塊就有巧合內聚邏輯內聚——當一個模塊執行一系列相關動作時,稱其有邏輯內聚。時間性內聚——當一個模塊內多個任務是與時間相關時,這個模塊含有時間性內聚。過程內聚——模塊執行若干動作之間有次序關系。通信內聚——模塊執行若干動作之間有次序關系,而且全部動作是在相同數據上執行。信息內聚——一個模塊中執行一系列動作,每個動作都有自己入口點和處理代碼,全部動作都作用在相同數據結構上,這么模塊叫做信息內聚。功效性內聚——一個模塊中各個部分都是完成某一詳細功效必不可少組成部分第39頁耦合分為七類:內容耦合——假如一個模塊直接參考另一個模塊內容,則這兩個模塊是內容耦合。公共耦合——假如多個模塊都訪問同一個公共數據環境,則稱它們是公共耦合。外部耦合——假如兩個模塊都訪問同一個全局簡單變量而不是同一全局數據結構,而且,不是經過參數表傳遞該全局變量信息,則這兩個模塊屬于外部耦合。控制耦合——假如模塊A向模塊B傳遞一個控制信息,則稱這兩個模塊是控制耦合數據結構耦合——當一個模塊調用另一個模塊時傳遞了整個數據結構,這兩個模塊之間含有數據結構耦合。數據耦合——假如兩個模塊傳遞是數據項,則這兩個模塊是數據耦合。非直接耦合——假如兩個模塊之間沒有直接關系,它們之間聯絡完全經過主模塊控制和調用來實現,這就是非直接耦合。第40頁什么是變換流?什么是事物流?答:變換型數據流能夠劃分為顯著三部分:邏輯輸入,中心變換,邏輯輸出事務流特點是數據沿某個輸入路徑流動,該路徑將外部信息轉換成事務,其中發射出多條事務處理路徑中心處理被稱為中心事務第41頁第6章詳細設計6.1詳細設計任務(1)過程設計。確定每個模塊詳細算法。(2)數據設計。設計模塊內所需要數據結構。(3)接口設計。確定模塊間接口信息以及用戶界面(比如GUI設計)。(4)為每個模塊設計一組測試用例。(5)編寫文檔,參加復審。第42頁6.2人機界面設計6.2.1界面設計基本類型6.2.2人機界面設計指南第43頁6.3過程設計工具6.3.1程序流程圖6.3.2合圖(N-S圖)6.3.3PAD圖6.3.4判定表6.3.5判定樹6.3.6過程設計語言第44頁6.4面向數據結構設計方法6.4.1Jackson圖6.4.2改進Jackson圖6.4.3Jackson方法第45頁6.5程序復雜程度定量度量詳細設計階段模塊質量是否很高,需要深入衡量。定量度量方法作用:把程序復雜程度乘以適當常數可估算出軟件中錯誤數量級軟件開發工作量;結果可用來比較兩個不一樣設計或兩個不一樣算法優劣。第46頁流圖計算環形復雜度方法環形復雜度用途6.5.1McCabe方法第47頁所謂流圖實質上是“退化了”程序流程圖,它僅僅描繪程序控制流程,完全不表現對數據詳細操作以及分支或循環詳細條件。轉換規則:程序流程圖中次序處理框序列和菱形判定框,能夠映射成流圖中一個結點。流圖中箭頭線稱為邊,代表控制流。一條邊必須終止于一個結點復合條件要轉換成若干個簡單條件6.5.1.1流圖(I)第48頁環形復雜度定量度量程序邏輯復雜度。有了描繪程序控制流流圖之后,能夠用下述3種方法中任何一個來計算環形復雜度。(1)流圖中區域數等于環形復雜度。(2)流圖G環形復雜度V(G)=E-N+2,其中,E是流圖中邊條數,N是結點數。(3)流圖G環形復雜度V(G)=P+1,其中,P是流圖中判定結點數目。6.5.1.2環形復雜度計算(I)第49頁程序環形復雜度取決于程序控制流復雜程度,也即是取決于程序結構復雜程度。McCabe研究大量程序后發覺,環形復雜度高程序往往是最困難、最輕易出問題程序。模塊規模以V(G)≤10為宜,也就是說,V(G)=10是模塊規模一個更科學更準確上限。6.5.1.2環形復雜度用途第50頁Halstead方法是另一個著名方法,它依據程序中運算符和操作數總數來度量程序復雜程度。令N1為程序中運算符出現總次數,N2為操作數出現總次數,程序長度N定義為:N=N1+N26.5.2Halstead方法(I)第51頁詳細設計基本任務是什么?有那幾個描述方法?答:詳細設計階段任務是要為編寫程序代碼設計“圖紙”,由程序員按“圖紙”用某種高級程序設計語言編寫程序代碼。主要方法有程序流程圖、合圖(N-S圖)、PAD圖、判定表、判定樹、過程設計語言(PDL)第52頁第7章實現通常把編碼和測試統稱為實現。編碼就是把軟件設計結果翻譯成用某種程序設計語言書寫程序。作為軟件工程過程一個階段,編碼是對設計深入詳細化,程序質量主要取決于軟件設計質量。所選取程序設計語言特點及編碼格調也將對程序可靠性、可讀性、可測試性和可維護性產生深遠影響。第53頁7.1.1選擇程序設計語言7.1.2編碼格調7.1編碼第54頁暴露問題并不是軟件測試最終目標,發覺問題是為了處理問題,測試階段根本目標是盡可能多地發覺并排除軟件中潛藏錯誤,最終把一個高質量軟件系統交給用戶使用。7.2軟件測試基礎第55頁7.2.3測試方法(I)測試技術1、白盒測試(WhiteBoxTesting)2、黑盒測試(BlackBoxTesting)結構測試功效測試第56頁大型軟件系統測試過程基本上由下述幾個步驟組成。1.模塊測試在設計得好軟件系統中,模塊含有低耦合、高內聚特點。所以,有可能把每個模塊作為一個單獨實體來測試,測試方案也比較輕易設計。模塊測試又稱為單元測試。在這個測試步驟中所發覺往往是編碼和詳細設計錯誤。7.2.4測試步驟(I)第57頁2.子系統測試子系統測試是把經過單元測試模塊放在一起形成一個子系統來測試,著重測試模塊間接口。3.系統測試系統測試是把經過測試子系統裝配成一個完整系統來測試。在這個測試步驟中發覺往往是軟件設計中錯誤,也可能發覺需求說明中錯誤。不論是子系統測試還是系統測試,都兼有檢測和組裝兩重含義,通常稱為集成測試。7.2.4測試步驟(II)第58頁4.驗收測試驗收測試是在用戶主動參加下進行,而且可能主要使用實際數據(系統未來要處理信息)進行測試。驗收測試目標是驗證系統確實能夠滿足用戶需要,在這個測試步驟中發覺往往是系統需求說明書中錯誤。驗收測試也稱為確認測試。7.2.4測試步驟(III)第59頁5.平行運行所謂平行運行就是同時運行新開發出來系統和將被它取代舊系統,方便比較新舊兩個系統處理結果。這么做詳細目標有以下幾點:(1)能夠在準生產環境中運行新系統而又不冒風險;(2)用戶能有一段熟悉新系統時間;(3)能夠驗證用戶指南和使用手冊之類文檔;(4)能夠以準生產模式對新系統進行全負荷測試,能夠用測試結果驗證性能指標。7.2.4測試步驟(IV)第60頁單元測試集中檢測軟件設計最小單元——模塊。前提是首先經過編譯程序語法檢驗。對主要執行通路進行測試,方便發覺模塊內部錯誤。單元測試主要使用白盒測試技術,而且對多個模塊測試能夠并行地進行。7.3單元測試第61頁7.3.1測試重點(I)在單元測試期間著重從下述5個方面對模塊進行測試。1.模塊接口2.局部數據結構3.主要執行通路4.犯錯處理通路5.邊界條件第62頁模塊并不是一個獨立程序,所以必須為每個單元測試開發驅動程序和(或)存根程序。通常驅動程序也就是一個“主程序”,調用該模塊。存根程序代替被測試模塊所調用模塊。所以存根程序也能夠稱為“虛擬子程序”。7.3.3計算機測試第63頁7.4集成測試集成測試非漸增式測試漸增式測試先分別測試每個模塊,再把全部模塊按設計要求放在一起結合成所要程序把下一個要測試模塊同已經測試好那些模塊結合起來進行測試,測試完以后再把下一個應該測試模塊結合進來測試第64頁自頂向下優點:不需要測試驅動程序,能夠在測試階段早期實現并驗證系統主要功效。缺點:需要存根程序,低層關鍵模塊中錯誤發覺較晚。而自底向上與之相反。第65頁在集成測試過程中每當一個新模塊結合進來時,程序就發生了改變。這些改變有可能使原來工作正常功效出現問題。在集成測試范圍中,所謂回歸測試是指重新執行已經做過測試某個子集,以確保上述這些改變沒有帶來非預期副作用。7.4.4回歸測試第66頁確認測試也稱為驗收測試,它目標是驗證軟件有效性。軟件有效性一個簡單定義是:假如軟件功效和性能如同用戶所合理期待那樣,軟件就是有效。7.5確認測試第67頁確認測試必須有用戶主動參加,或者以用戶為主進行。確認測試通常使用黑盒測試法。經過測試和調試要確保軟件能滿足全部功效要求,能到達每個性能要求。7.5.1確認測試范圍第68頁Alpha測試由用戶在開發者場所進行,而且在開發者對用戶“指導”下進行測試。Alpha測試是在受控環境中進行。與Alpha測試不一樣,開發者通常不在Beta測試現場,Beta測試是軟件在開發者不能控制環境中“真實”應用。7.5.2Alpha和Beta測試(II)第69頁也叫玻璃盒測試(GlassBoxTesting)。對軟件過程性細節做細致檢驗。這一方法是把測試對象看作一個打開盒子,它允許測試人員利用程序內部邏輯結構及相關信息,來設計或選擇測試用例,對程序全部邏輯路徑進行測試。7.6白盒測試技術第70頁邏輯覆蓋測試5種標準第71頁輸入A,B,C,D(A>5)or(B>6)X=A+BX=A-B(C>A)and(D<B)Y=C+DY=C-D輸出X,Y真真條件組合測試第72頁參考答案條件組合覆蓋四個條件組合A>5、B>6、C>A、D<B第一個判斷組合為TTTFFTFF第二個判斷組合為TTTFFTFF把兩個判斷組合在一起組成條件組合覆蓋(有各種組合情況,寫出一個即可,以下)
ABCDXYTTTT(10,10,15,5,20,10)TFTF(10,5,15,10,15,15)FTFT(5,10,5,5,15,10)FFFF(5,5,5,5,0,10)第73頁1.基本路徑測試使用基本路徑測試技術設計測試用例步驟以下:第一步,依據過程設計結果畫出對應流圖。第二步,計算流圖環形復雜度。第三步,確定線性獨立路徑基本集合。第四步,設計可強制執行基本集合中每條路徑測試用例。7.6.2控制結構測試(I)第74頁黑盒測試著重測試軟件功效。它很可能發覺白盒測試不易發覺其它類型錯誤。黑盒測試力圖發覺下述類型錯誤:①功效不正確或遺漏了功效;②界面錯誤;③數據結構錯誤或外部數據庫訪問錯誤;④性能錯誤;⑤初始化和終止錯誤。7.7黑盒測試技術第75頁7.7黑盒測試技術1、等價劃分2、邊界值分析3、錯誤推測4、因果圖法第76頁調試是在測試發覺錯誤之后排除錯誤過程。7.8.1調試過程調試過程總會有以下兩種結果之一:①找到了問題原因并把問題更正和排除掉了;②沒找出問題原因。在后一個情況下,調試人員能夠猜測一個原因,并設計測試用例來驗證這個假設,重復此過程直至找到原因并更正了錯誤。7.8調試第77頁1.軟件可靠性定義軟件可靠性是程序在給定時間間隔內,按照規格說明書要求成功地運行概率。2.軟件可用性軟件可用性是程序在給定時間點,按照規格說明書要求,成功地運行概率。7.9軟件可靠性
7.9.1基本概念第78頁可靠性和可用性之間主要差異是,可靠性意味著在0到t這段時間間隔內系統沒有失效,而可用性只意味著在時刻t,系統是正常運行。第79頁什么是軟件測試?答:軟件測試從廣義上講,是指軟件產品生存周期內全部檢驗、評審和確認活動。從狹義上講,軟件測試是為了發覺錯誤而執行程序過程。或者說,軟件測試是依據軟件開發各個階段規格說明和程序內部結構而精心設計一批測試用例,用這些測試用例運行程序,以發覺程序錯誤過程。第80頁請說明集成測試、系統測試和驗收測試有什么不一樣?答:集成測試界于單元測試和系統測試之間,起到“橋梁作用”,普通由開發小組采取白盒加黑盒方式來測試,既驗證“設計”,又驗證“需求”。
系統測試粒度最大,普通由獨立測試小組采取黑盒方式來測試,主要測試系統是否符合“需求規格說明書”。
驗收測試與系統測試相同,主要區分是測試人員不一樣,驗收測試由用戶執行。第81頁什么是白盒測試?它適應哪些測試?答:白盒測試也叫結構測試,測試者需要了解被測程序內部結構。白盒測試通常依據覆蓋準則設計測試用例,有語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋和條件組合覆蓋。白盒測試適用與單元測試、集成測試、系統測試第82頁采取黑盒技術設計測試用例有哪幾個方法?這些方法各有什么特點?答:黑盒測試設計測試用例方法有1)等價類劃分法特點是:a、測試內容相同b、一個等價類中某個測試能夠發覺缺點,那么這個等價類其它測試也能發覺缺點c、一個等價類中某個測試不能發覺缺點,那么這個等價類其它測試也不能發覺缺點2)邊界值分析法特點是:用邊界值分析時時常收獲較大,它是在等價類邊界上選擇測試用例3)錯誤推測法特點是:沒有確定步驟,很大程度上是憑借經驗進行4)因果圖法特點是:考慮輸入條件間組合關系;考慮輸出條件對輸入條件信賴關系;測試用例發覺錯誤效率高;能查出功效說明中一些不一致或遺漏第83頁白盒測試法有哪些覆蓋標準?試對它們檢錯能力進行比較。答:白盒測試覆蓋標準有:語句覆蓋->判定覆蓋->條件覆蓋->判定/條件覆
蓋->條件組合覆蓋->路徑覆蓋檢錯能力由弱到強第84頁第8章維護第85頁8.1.1軟件維護定義所謂軟件維護就是在軟件已經交付使用之后,為了更正錯誤或滿足新需要而修改軟件過程。軟件維護包含下述4項活動。(1)更正性維護:診療和更正錯誤過程;(2)適應性維護:為了適應新環境而修改軟件活動;(3)完善性維護:增加新功效和修改已經有功效維護;(4)預防性維護:給未來改進奠定基礎而修改軟件維護。第86頁8.1.4軟件維護特點軟件結構、系統接口、約束條件……???1、結構化維護與非結構化維護對比維護要求軟件配置只有代碼評價代碼重編程序復查完整配置評價設計文檔預計改動影響,計劃實施路徑修改設計重編程序復查交付使用第87頁8.2軟件維護活動(I)1、本質上是修改和壓縮了軟件定義和開發過程。第88頁8.3程序修改步驟在軟件維護時,必定會對源程序進行修改。通常對源程序修改不能無計劃地倉促上陣,為了正確、有效地修改,需要經歷以下三個步驟。
分析和了解程序
修改程序
重新驗證程序第89頁8.4軟件可維護性(I)軟件可維護性是指糾正軟件系統出現錯誤和缺點,以及為滿足新要求進行修改、擴充或壓縮輕易程度。可維護性、可使用性、可靠性是衡量軟件質量主要質量特征,也是用戶十分關心幾個方面。軟件可維護性是軟件開發階段各個時期關鍵目標。第90頁8.4.1決定軟件可維護性原因當前廣泛使用是用以下七個特征來衡量程序可維護性。 可了解性 可使用性 可測試性 可移植性 可修改性 效率 可靠性第91頁軟件可維護性是軟件設計師最關注性能,談談為了取得軟件良好可維護性,在設計時應該注意哪些問題?答:為取得軟件良好可維護性,在設計階段應該做一些變更試驗,檢驗系統可維護性、靈活性和可移植性,設計時應該將今后可能變更內容與其它部分分離開來,而且遵照高內聚、低偶合標準。第92頁在軟件文檔中,你認為哪些文檔對于軟件維護最主要?需求分析文檔、設計文檔、程序文檔對軟件維護很主要第93頁軟件維護時源程序修改策略是什么?答:軟件維護時源程序修改策略是:因為軟件維護最終落實在修改源程序和文檔上。為了正確、有效地修改源程序,通常要先分析和了解源程序,然后才能修改源程序,最終重新測試和驗證源程序。第94頁9-13章關鍵點第95頁第9章面向對象方法學引論9.1面向對象方法學概述9.1.1傳統方法學缺點9.1.2面向對象開發方法9.1.3面向對象方法關鍵點9.1.4面向對象方法組成9.1.5面向對象方法過程9.1.6面向對象方法優點第96頁9.2面向對象概念9.2.1對象9.2.2類9.2.3實例9.2.4消息9.2.5方法9.2.6屬性9.2.7封裝9.2.8繼承9.2.9多態性9.2.10重載第97頁9.3面向對象建模面向對象開發軟件,需要建立3種形式模型。對象模型。描述系統數據結構—數據結構;用類圖描述動態模型。描述系統控制結構—執行操作;用狀態圖描述功效模型。描述系統功效—數值改變;用DFD描述這三種模型從不一樣側面描述了對系統需求。在面向對象分析(OOA)階段,這三種模型是必不可少。第98頁9.4對象模型對象模型描述了系統靜態結構。OO方法強調圍繞對象而不是功效來結構系統。使用統一建模語言UML(UnifiedModelingLanguage)提供類圖來建立對象模型。第99頁第100頁類圖中類之間關系關系含義符號關聯兩個元素之間關聯關系依賴兩個元素之間依賴關系泛化普通與特殊關系聚集整體與部分之間關聯關系組合更強一個整體與部分間擁相關系,整體負責部分創建和刪除實現規約(specification)與它實現之間關系第101頁9.5動態模型表示瞬時、行為化系統“控制”性質要求了對象模型中對象正當改變序列用狀態圖描述對象狀態、觸發狀態轉換事件、對象行為(對事件響應)每個類動態行為用一張狀態圖描繪,各個類狀態圖經過共享事件合并起來組成整個系統動態模型,動態模型是基于事件共享而相互關聯一組狀態圖集合。相關概念事件:引發對象狀態轉換控制信息,瞬間完成。狀態:對象在某個特定階段含有行為模式,有連續性。行為:對象所做一系列操作3.6節第102頁9.6功效模型UML提供用例圖也是進行需求分析和建立功效模型強有力工具。一幅用例圖包含模型元素有系統、行為者、用例及用例之間關系。第103頁9.73種模型之間關系三種模型描述了系統不一樣方面對象模型動態模型功效模型對象靜態結構及相互關系與時間和次序相關系統性質與值改變相關系統性質描述系統數據結構控制結構系統功效“干事主體”“什么時候干”“干什么”第104頁9.7.3種模型之間關系(續)相互補充、相互配合,從不一樣側面反應系統內容,綜合起來則全方面地反應了對目標系統需求功效模型指明了系統應該“做什么”;動態模型要求了“什么時候做”;對象模型則定義了“誰來做”功效模型中“處理”對象模型中“服務”動態模型中“行為”功效模型中“數據存放”、“數據源/終點”對象模型中“對象”功效模型中“數據流”對象模型中“屬性”第105頁第10章面向對象分析10.1面向對象分析過程首先,系統分析員要對需求文檔進行分析。然后,是需求建模。最終,是需求評審。第106頁(2)面向對象分析三個模型與五個層次面向對象分析三個模型:面向對象分析模型包含:對象模型、動態模型和功效模型。對象模型描述了系統靜態結構;動態模型描述了系統交互次序;功效模型描述了系統數據變換。其中,對象模型是最基礎、最關鍵、最主要。不論處理什么問題,首先要在問題域中提取和定義出對象模型。第107頁10.2需求陳說
10.2.1書寫關鍵點
10.2.2示例第108頁首先是建立問題域對象模型。然后再建立另外兩個子模型。需求陳說、應用領域專業知識以及關于客觀世界常識,是建立對象模型時主要信息起源。10.3建立對象模型第109頁對于僅存放靜態數據系統(比如數據庫)來說,動態模型并沒有什么意義。在開發交互式系統時,動態模型卻起著很主要作用。假如搜集輸入信息是目標系統一項主要工作,則在開發這類應用系統時建立正確動態模型是至關主要。10.4建立動態模型第110頁第一步:是編寫經典交互行為腳本。第二步,從腳本中提取出事件,確定觸發每個事件動作對象以及接收事件目標對象。第三步,排列事件發生次序,確定每個對象可能有狀態及狀態間轉換關系,并用狀態圖描繪它們。最終,比較各個對象狀態圖,檢驗它們之間一致性,確保事件之間匹配。第111頁功效模型表明了系統中數據之間依賴關系,以及相關數據處理功效,它由一組數據流圖組成。其中處理功效能夠用IPO圖(或表)、偽碼等各種方式深入描述。通常在建立了對象模型和動態模型之后再建立功能模型。10.5建立功效模型第112頁為建立完整對象模型,既要確定類中應該定義屬性,又要確定類中應該定義服務。在確定類中應有服務時,既要考慮該類實體常規行為,又要考慮在本系統中特殊需要服務。10.6定義服務第113頁第11章面向對象設計面向對象設計(OOD,Object-OrientedDesign)是面向對象分析到實現一個橋梁。面向對象分析是將用戶需求經過分析后,建立問題域準確模型過程;而面向對象設計則是依據面向對象分析得到需求模型,建立求解域模型過程。即分析必須搞清楚系統“做什么”,而設計必須搞清楚系統“怎么做”,從分析到設計不是傳統方法轉換,而是平滑(無縫)過渡,而求解域模型是系統實現依據。第114頁11.1面向對象設計準則(1)模塊化在面向對象開發方法中,將對象定義為模塊。對象把數據結構和作用在數據上操作(方法)封裝起來組成模塊。對象是組成系統基本模塊。(2)抽象
類是一個抽象數據類型,在該數據類型之上,能夠創建對象(類組員)。類包含相同對象共同屬性和服務,它對外定義了公共接口,組成了類規格說明(即協議),供外界正當訪問。(3)信息隱藏
在面向對象方法中,對象是屬性和服務封裝體,這就實現了信息隱藏。類結構分離了接口與實現,類屬性表示方法和操作實現算法,對于類用戶來說,都應該是隱藏,用戶只能經過公共接口訪問類中屬性。第115頁(4)弱耦合所謂耦合,是指一個軟件結構內不一樣模塊之間互連依賴關系。依賴關系越多耦合度越強,依賴關系越少耦合度越弱。在面向對象方法中,對象是最基本模塊,不一樣對象之間相互關聯依賴關系表示了耦合度。衡量設計優良一個主要標準就是弱耦合,弱耦合設計中某個對象改變不會或極少影響到其它對象。不一樣對象之間耦合是不可防止。兩個對象必須相互聯絡相互依賴時,應該經過類協議(即公共接口)實現兩個對象相互依賴(耦合),而不是經過類詳細實現細節來描述。(5)強內聚所謂內聚,是一個模塊內各個元素彼此結合緊密程度。結合得越緊密內聚越強,結合得越不緊密內聚越弱。強內聚也是衡量設計優良一個主要標準。在面向對象設計中,內聚可分為下述三類:第116頁1)服務(操作)內聚。一個服務應該是單一,即只完成一個任務。2)類內聚。類內聚要求類屬性和服務應該是高內聚,而且它們應該是系統任務所必需。一個類應該只有一個功效,假如某個類有多個功效,通常應該把它分解成多個專用類。3)普通-特殊內聚。普通-特殊內聚表示:普通-特殊結構符合領域知識表示形式,也就是說,特殊類應該盡可能地繼承普通類屬性和服務。這么普通-特殊結構是高內聚。(6)可重用在面向對象設計中,一個類設計應該含有通用性,為開發相同系統提供軟件重用可能。所以,在軟件開發過程中,為了實現重用,既要盡可能重用已經有類,又要創建可重用新類。第117頁11.2啟發規則1.設計結果應該清楚易懂2.普通-特殊結構深度應適當3.設計簡單類4.使用簡單協議5.使用簡單服務6.把設計變動減至最小第118頁11.3軟件重用
重用也叫再用或復用,是指同一事物不作修改或稍加改動就屢次重復使用。軟件成份重用能夠深入劃分成以下3個級別:(1)代碼重用源代碼剪貼;源代碼包含;繼承;第119頁(2)設計結果重用設計結果重用指是,重用某個軟件系統設計模型(即求解域模型)。這個級別重用有利于把一個應用系統移植到完全不一樣軟硬件平臺上。(3)分析結果重用這是一個更高級別重用,即重用某個系統分析模型。這種重用尤其適合用于用戶需求未改變,但系統體系結構發生了根本改變場所。第120頁3.經典可重用軟件成份更詳細地說,可能被重用軟件成份主要有以下10種:(1)項目計劃。(2)成本預計。(3)體系結構。(4)需求模型和規格說明。(5)設計。(6)源代碼。(7)用戶文檔和技術文檔。(8)用戶界面。(9)數據。(10)測試用例。第121頁11.3.2類構件利用面向對象技術,能夠更方便更有效地實現軟件重用。面向對象技術中“類”,是比較理想可重用軟構件,不妨稱之為類構件。類構件有3種重用方式,分別是實例重用、繼承重用和多態重用。第122頁11.4系統分解面向對象設計同過程設計一樣,自頂向下進行功效分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025人教版(PEP)三年級下冊期末模擬卷(含答案含聽力原文無音頻)
- 工業園區綠色低碳化改造方案
- 工業廢棄地生態修復實踐案例
- 工業旅游的發展現狀及前景分析
- 工業機器人技術培訓及故障排除
- 工業污染防治與生態保護
- 工業生產中熱風爐的節能技術應用案例
- 工業污染對森林環境的影響與修復策略
- 工業污染防治的技術與策略研究
- 工業自動化設備維護與管理系統
- 廣東省廣州市番禺區2020年七年級第二學期期末區統考試卷(含答案)
- 藥物研發自動化-全面剖析
- 股權回購合同協議書范本6篇
- 課程思政說課公務員制度講座情境創設下雙線四點的課程思政融入設計
- 2024年衛生管理領軍者考試試題及答案
- 飼料行業粉塵防爆
- 預制菜烹飪知識培訓課件
- 2025版各行業《重大事故隱患執法檢查參考標準》
- 美國反商業賄賂合作制度對我國治理商業賄賂的啟示
- 2025年江蘇省職業院校技能大賽中職組(食品藥品檢驗)參考試題庫資料及答案
- 禮讓行車培訓
評論
0/150
提交評論