第一篇:軟件工程導論最全復習總結(精)
1、軟件危機是指在計算機開發過程中的開發和維護過程中所遇到的一系列的嚴重問題。
2、軟件是程序、數據及相關文檔的完整集合,程序是能夠完成預定功能和性能的可執行的
程序序列;數據是是使程序能夠適當的處理信息的數據結構;文檔是開發、使用和維護程序所需要的圖文資料。
3、軟件工程學包含3個要素:方法、工具、過程。
4、目前使用最廣泛的軟件工程方法學是傳統方法學和面向對象方法學。
5、軟件工程方法學的軟件過程基本上可以用瀑布模型來描述。
6、瀑布模型、快速原型模型、增量模型、螺旋模型、噴泉模型。
7、Rup把軟件生命周期劃為:初始、精化、構建、移交階段。
8、可行性研究的三方面:技術可行性、經濟可行性、操作可行性。
9、數據流圖(DFD是一種圖形化技術,他描繪信息流和數據從輸入移動到輸出的過程中
所經受的變化。
10、數據字典是關于數據信息的集合,也就是對數據流程圖中所包含的所有元素的定義 的集合。
11、數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典,數據如就不嚴格, 沒有流程圖,數據字典也難以發揮作用。
12、需求分析階段結束之前,系統分析員應該寫出軟件需求規格說明書,以書面形式準
確的描述軟件需求。13、9、結構化分析方法就是面向數據流自頂向下逐步求精進行需求分析的方法。
14、ER圖中包含了實體、關系和屬性,矩形代表實體,菱形表示關系,橢圓或圓角矩
形表示屬性,用直線把實體和其屬性連接。
15、驗證軟件需求的正確性:一致性、完整性、現實性、有效性。
16、總體設計的基本目的是回答“概括地說,系統應該如何實現?”,總體設計又稱為
概要設或初步設計。
17、模塊的獨立程度可以有兩個定性標量度量:內聚和耦合。
18、軟件測試的目標:(1測試是為了發現程序中的錯誤而執行程序的過程;(2好的
測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;(3成功的測試是發現可至今為止尚未發現的錯誤的測試。
19、軟件測試步驟:模塊測試、子系統測試、系統測試、驗收測試、平行運行。
20、軟件可靠性是程序在給定的時間點,按照規格說明書的規定,成功的運行的概率。
21、用面向對象方法開發軟件,通常需要建立3種形式的模型:描述系統數據結構的對
象模型,描述系統控制結構的動態模型和描述系統功能的功能模型。
22、用面向對象方法開發軟件,在任何情況下,對象模型始終都是最重要、最基本的、最核心的。
23、通常,使用UML提供的類圖來建立對象模型。
24、類與類之間通常有關聯、泛化(繼承、依賴和細化等4種關系。
25、在UML中,在一段為空心的三角形的連線表示泛化關系。
26、復雜問題的對象模型通常由:主題層、類與對象層、結構層、屬性層和服務層。
27、廣義的說,軟件重用可分為知識重用、方法和標準的重用、軟件成分的重用。
28、工程網絡和Gantt圖同樣是安排進度和管理工程進度情況的強有力的工具。29、3種典型人員組織方式:民主制程序員組、住程序員組、現代程序員組。30、軟件過程的輸出信息可以分為3類計算機程序、描述計算機程序的文檔、數據,這
些項組成了軟件過程中產生的全部信息,人們把他們統稱為軟件配置,而這些項就是軟件配置項。
31、Cmm把軟件過程從無序到有序的進化過程分成5個階段,并把這些階段排序,形
成五個逐層提高的等級。能力的成熟度的5個等級從低到高依次是:初始級(1級、可重復級(2級、已定義級(3級已管理級(4級和優化級(5級。
15、編碼風格:持續內部文檔、數據說明、語句構造、輸入輸出、效率、32、軟件危機的典型表現:對軟件開發成本和進度的估計常常很不準確;用戶對“已完
成”的軟件系統不滿意的現象經常發生;軟件產品質量往往靠不住;軟件常常是不可維護的;軟件通常沒有適當的文檔資料;軟件成本在計算機總成本中所占的比例逐年上升;軟件開發生產效率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。
33、軟件不同于硬件,他是計算機系統的邏輯部件而不是物理部件。
34、軟件不同于一般程序,它的一個顯著特點就是規模龐大。簡單題
1、軟件工程基本原理(1用分階段的生存周期嚴格管理。(2堅持進行階段評審。(3實行嚴格的產品控制。(4采用現代程序設計技術。(5結果應能清楚地審查。(6開發小組人員應該少而精。(7承認不斷改進軟件工程實踐的必要性。
2、軟件生命周期各階段的基本任務軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成,每個時期又進一步劃分成若干個階段。(1問題定義(2可行性研究(3需求分析(4總體設計(5詳細設計(6編碼和單元測試(7綜合測試(8軟件維護
3、需求分析的任務
一、確定對系統的綜合要求(1功能需求(2性能需求(3可靠性和可用性需求(4出錯處理需求(5接口需求(6約束(7逆向需求(8將來可能提出的需求
二、分析系統的數據要求
三、導出系統的邏輯模型
四、修正系統開發計劃
4、改進軟件設計的啟發式規則(1改進軟件結構提高模塊獨立性(2模塊規模應該適中(3深度、寬度、扇出和扇入都應適當(4模塊的作用域應該在控制域之(5力爭降低模塊接口的復雜程度(6設計單入口單出口的模塊(7模塊功能應該可以預測
5、面向對象設計準則和啟發式原則
(1模塊化(2抽象(3信息隱藏(4弱耦合(5強內聚(6可重用
(1設計結果應該清晰易懂(2一般-特殊結構的深度應適當(3設計簡單的類(4使用簡單的協議(5使用簡單的服務(6把設計變動減至最小
6、軟件維護的幾種類型
(1改正性維護(2適應性維護(3完善性維護(4預防性維護
7、決定軟件可維護性因素
(1可理解性(2可測試性(3可修改性(4可移植性(5可重用性
8、軟件配置項
軟件配置的主要任務就是控制變化,同時也負責各個軟件配置項和軟件各種版本的標志、軟件配置審計以及軟件配置發生的任何變化的報告。(1標識軟件配置中的對象(2版本控制(3變化控制(4配置審計(5狀態報告
設計題
1、等價類有效/無效數據邊界值測試
2、UML類圖的描述
3、N-S圖、PAD圖 論述題
(1軟件工程(2可行性研究問題定義階段必須回答的關鍵問題是:“要解決的問題是
什么”。如果不知道問題是什么就試圖解決這個問題,顯然是盲目的,只會自白浪費
時間和金錢,最終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的,但是在實踐中它卻可能是最容易被忽視的一個步驟。(3需求分析這個階段的任務仍然不是具體地解決客戶的問題,而是準確地回答“目標系統必須做什么”這個問題。(4總體設計這個階段的基本任務是,概括地回答“怎樣實現目標系統?”這個問題。概要設計又稱為初步設計、邏輯設計、高層設計或總體設計。(5詳細設計這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規格說明的作用很類似于其他工程領域中工程師經常使用的工程藍圖,它們應該包含必要的細節,程序員可以根據它們寫出實際的程序代碼。(6編碼實現(語言,測試這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。(7維護維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要。
(8面向對象技術(9項目管理
1.軟件工程學:為了更有效地開發與維護軟件,軟件工作者早20世紀60年代后期開始認真
研究消除軟件危機的途徑,從而逐漸形成了一門新興的工程學科。2.軟件危機典型變現:(1.對軟件發開成本和進度的估計常常不準確.(2.用戶對“已完成的”軟件系統不滿意的現象經常發生.(3.軟件產品的質量往往靠不住.(4.軟件常常是不可維護的.(5.軟件通常沒有適當的文檔資料.(6.軟件成本在計算機系統總成本中所占的比例逐年上升.(7.軟件開發產生率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢.3.產生軟件危機的原因:(1.軟件不同于硬件,它是計算機系統中的邏輯部件而不是物理部件.(2.軟件不同于一般程序,它的一個顯著特點是規模龐大,而且程序復雜性將隨著程序規模 的增加而呈指數上升.(3.軟件本身獨有的特點確實給開發和維護帶來一些客觀困難.(4與軟件開發和維護有關的許多錯誤認識和做法形成,可以歸因于在計算機系統發展的早
期階段軟件開發的個體特點.4.消除軟件危機的途徑:(1.應該對計算機軟件有一個正確的認識.(2.充分認識到軟件開發不是某種個體勞動的神秘技巧,而應該是組織良好、管理嚴密、各
類人員協同配合、共同完成的工程項目.(3.在使用要總結出成功的技術和方法,盡快消除錯誤概念和做法.(4.開發和使用更好的軟件工具 5.軟件工程的本質特性:(1.軟件工程關注于大型程序的構造.(2.軟件工程的中心課題是控制復雜性.(3.軟件經常變化.(4.開發軟件的效率非常重要.(5.和諧地合作是開發軟件的關鍵.(6.軟件必須有效地支持它的用戶.(7.在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創造產
品.6.軟件工程的原理:(1.用分段的生命周期計劃嚴格管理.(2.堅持進行階段評審.(3.實行嚴格的產品控制.(4.采用現代程序設計技術.(5.結果應能清楚地審查.(6.開發小組的人員應該少而精.(7.承認不斷改進軟件工程實踐的必要性.7.軟件生命周期:由軟件定義、軟件開發和運行維護3個時期組成,每個時期又進一步劃分成若干個階段.8.軟件開發時期4個階段:總體設計,詳細設計,編碼和單元測試,綜合測試.9.軟件維護,維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的需要.10.瀑布模型的特點:(1.階段間具有順序性和依賴性.(2.推遲實現的觀點.(3.質量保證的觀點.11.快速原型模型:是快速建立起來的可以在計算機運行的程序,它所能完成的功能往往是最
終產品能完成的功能的一個子集.12.快速模型的主要優點是不帶饋環的,軟件產品基本上是線性順序進行的.13.可行性研究的目的:用最小的代價在盡可能短的時間內確定問題是否能夠解決.14.可行性的解法:(1技術可行性.(2經濟可行性.(3操作可行性.15.可行性研究過程步驟:(1.復查系統規模和目標.(2.研究目前正在使用的系統.(3.導出新系統的高層邏輯模型.(4.進一步定義問題.(5.導出和評價供選擇的解法.(6.推薦行動方針.(7.草擬開發計劃.(8.書寫文檔提交審查.16.系統流程圖:是概括地描繪物理系統的傳統工具.它的基本思想是用圖形符號以黑盒子形
式描繪組成系統的每個部件.17.數據流圖(DFD:是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經
受的變換.18.數據字典:是關于數據的信息的集合,就是對數據流圖中包括的所有元素的定義的集合.19.數據字典組成元素:(1數據流.(2數據流分量.(3數據存儲.(4處理.20.定義數據的方法:定義絕大多數復雜事物的方法,都是用被定義的事物的成分的某種組合
表示這個事物,這些組成成分又由更底層的成分的組合來定義.21.數據字典最重要用途:作為分析階段的工具。
22.為什么要進行需求分析:因為它的基本任務是準確地回答“系統必須做什么?”這個問
題。可行性研究階段只是粗略了解用戶的需求,許多細節被忽略,然而最終的系統中卻不能遺漏任何細節。所以可行性研究并不能代替需求分析。
23.軟件系統綜合要求:(1功能需求.(2性能需求.(3可靠性和可行性需求.(4出錯處理需求.(5 接口需求.(6約束.(7逆向需求.(8將來可能提出的要求.24.訪談:是最早開始使用的獲取用戶需求的技術,是迄今為止仍然廣泛使用的需求分析技術.25.需求分析過程3種模型:數據模型、功能模型和行為模型.26.數據模型包含3種相互關聯信息:數據對象、數據對象的屬性及數據對象彼此間相互連接的關系.27.總體設計的目的:就是回答“概括地說,系統應該如何實現?”這個問題.28.總體設計兩個過程:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟件結
構.29.總體設計過程步驟:(1設想供選擇的方案.(2選取合理的方案.(3推薦最佳方案.(4功能分
解.(5設計軟件結構.(6設計數據庫.(7制定測試計劃.(8書寫文檔.(9審查和復查.30.模塊化:就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這
些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求.31.怎做到模塊獨立:開發具有獨立功能而且和其他模塊之間沒有過多的相互作用的模塊.32模塊獨立兩個定性標準度量:內聚和耦合.33.耦合:對一個軟件結構內不同模塊之間互連程度的度量.34.內聚:標志著一個模塊各個元素彼此結合的緊密程度,它是信息隱藏和局部化概念的自然
擴展.35.功能內聚10分順序內聚9分通信內聚7分過程內聚5分時間內聚3分邏輯內聚1 分偶然內聚0分
36.設計時要力爭做到高內聚,低耦合.37.啟發式規則介紹:(1.改進軟件結構提高模塊獨立性.(2.模塊規模應該適中.(3.深度、寬度、扇出和扇入都應適當.(4.模塊的作用域應該在控制域之內.(5.力爭降低模塊接口的復雜程度.(6.設計單入口單出口的模塊.(7.模塊功能應該可以預測
38.交換流:信息沿輸入通信路進入系統,同時由外部形式變換成內部形式,進入系統的信息通
過變換中心,經加工處理以后再沿輸出路變成外部形式離開軟件系統.39.事務流:數據沿輸入通路到達一個處理T,這個處理根據輸入數據的類型在若干個動作序列
中選出一個來執行.40.詳細設計目標:確定應該怎樣具體地實現所要求的系統.41.結構程序設計:如果一個程序的代碼塊僅僅通過順序、選擇和循環這3種基本控制結構進
行連接,并且每個代碼只有一個入口和一個出口.42.實現:通常把編碼和測試統稱.43.編碼:就是那軟件設計結果翻譯成用某種程序設計語言書寫的程序.44.測試方法:黑盒測試(知產品的功能可測試和白盒測試(知產品內部工作過程可測試
45.測試步驟:(1模塊測試.(2子系統測試.(3系統測試.(4驗收測試.(5平行運行.46.測試重點:(1模塊接口(2局部數據結構(3重要的執行通路(4出錯處理通路(5邊界條件.47.確認測試:也稱驗收測試,它的目標是驗收軟件的有效性.48.Alpha測試:由用戶在開發者的場所進行,并且在開發者對用戶的“指導”下進行測試.開發者
負責記錄發現的錯誤和使用中遇到的問題.49.Beta測試:由軟件的最終用戶在一個或多個客戶場所進行.與Alpha測試不同,開發者通常
不在Beta測試的現場,因此,Bate測試時軟件在開發者不能控制的環境中的“真實”應用.50.調試:是在測試發現錯誤之后排除錯誤的過程.51.軟件維護:就是在軟件已經交付使用之后,為了改正錯誤或滿足新的需要而修改的過程.52.改正性維護:診斷和改正錯誤的過程.53.決定軟件維護性的因素:(1可理解性.(2可測試性.(3可修改性.(4可移植性.(5可重用性.54.用戶文檔:是用戶了解系統的第一步,它應該能使用戶獲得對系統的準確的初步印象.55.用戶文檔包括的內容:(1功能描述(2安裝文檔(3使用手冊(4參考手冊(5操作員指南.56.系統文檔:指從問題定義、需求說明到驗收測試計劃這樣一系列和系統實現有關的文檔.
第二篇:軟件工程導論復習整理(最新)
第一章
1..軟件危機:在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
2.軟件與硬件的區別:軟件不同于硬件,它是計算機系統中的邏輯部件而不是物理部件。
3.軟件:程序、數據及相關文檔的完整集合。
4.軟件工程是指導計算機軟件開發和維護的一門工程學科,采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到最好的技術方法結合起來,以經濟地開發出高質量的軟件并有校地維護它。
5.軟件工程方法學三要素:方法、工具和過程。
6.傳統方法學也稱為生命周期方法學或結構化范型。它采用結構化技術來完成軟件開發的各項任務,并使用適當的軟件工具或軟件工程環境來支持結構化技術的運用。
7.面向對象方法學把數據和行為看成同等重要的,它是一種以數據為主線,把數據和對數據的操作緊密地結合起來的方法。
8.軟件生命周期劃分為三個時期:1軟件定義(問題定義、可行性研究、需求分析),2軟件開發(總體設計、詳細設計、編碼和單元測試、綜合測試),3運行維護(軟件維護)。
9.4類軟件維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件使它更完善;預防性維護,即修改軟件,為將來的維護活動預先做準備。
10.“瀑布模型”的缺點:它是由文檔驅動的,僅僅通過寫在紙上的靜態的規格說明,很難全面正確地認識動態的軟件產品;瀑布模型幾乎完全依賴于書面的規格說明,很可能導致最終開發出的產品不能真正的滿足用戶的需要。
11.快速原型模型的優點:原型系統已經通過與用戶交互而得到驗證,據此產生的規格說明文檔正確地描述了用戶需求;開發人員通過建立原型系統已經學到了很多東西,因此,在設計和編碼階段發生錯誤的可能性也比較小,這自然減少了在后續階段需要改正前面階段所犯錯誤的可能性。
第二章 1.可行性研究的三個方面:技術可行性:使用現有的技術能實現這個系統經濟可行性:這個系統的經濟效益能超過它的開發成本操作可行性:系統的操作方式在這個用戶組織內行得通
2.數據流圖的4個基本符號及畫法P41
3.數據字典:是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。
4.符號含義:=表示“等價于”或“定義為”;+表示連接;[ ]表示“或”,用“|”分隔;{ }表示“重復”,()表示“可選”用“,”號隔開;1{A}5 表示上限和下限。
5.高校電話號碼數據的定義P54
第三章
1.需求分析3種模型:數據模型:實體-聯系圖,描繪數據對象及數據對象之間的關系;功能模型:數據流圖,描繪當數據在軟件系統中移動時被變換的邏輯過程;行為模型:狀態轉換圖,指明了作為外部事件結果的系統行為,描繪了系統的各種行為模式。
2.ER圖3種基本成分:實體(數據對象),關系,屬性。P64
3.軟件需求驗證的四個方面:一致性,完整性,現實性,有效性。
第四章
1.總體設計2個主要階段:系統設計階段,確定系統的具體實現方案;結構設計階段,確定軟件結構。
2.信息隱藏:設計和確定模塊,使得一個模塊內包含的特定信息,對于不需要這些信息的模塊來說,是不能訪問的。
3.模塊獨立2個度量標準:內聚和耦合。耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內聚衡量一個模塊內部各個元素彼此結合的緊密程度。4.耦合與內聚判定P98-99
5.深度:表示軟件結構中控制的層數,它往往粗略的標志一個系統的大小和復雜程度,深度和程序長度之間應該有粗略的對應關系;寬度:是軟件結構內同一層次上的模塊總數的最大值;扇出:是一個模塊直接控制(調用)的模塊數目;扇入:表明一個模塊有多少上級模塊直接調用它
6.P100 模塊的作用域和模塊的控制域之間的關系:模塊的作用域定義為受該模塊內一個判定影響的所有模塊的集合;模塊的控制域是這個模塊本身以及所有直接或間接從屬于它的模塊的集合;模塊的作用域應該在控制域之內(在設計的很好的系統中,所有受判定影響的模塊應該都從屬于做出判定的那個模塊,最好局限于做出判定的那個模塊本身以及它的直屬下級模塊)。
6.層次圖,結構圖P10
2第六章
1.結構程序設計定義:如果一個程序的代碼塊僅僅通過順序、選擇和循環這3種基本控制結構進行連接,并且每一個代碼塊只有一個入口和一個出口,則稱這個程序是結構化的。
2.P124 過程設計的工具:程序流程圖、盒圖、PAD圖、判定表、判定樹、過程設計語言。
3.畫出偽碼程序的程序流程圖和盒圖 P1
41第七章
1.軟件測試在軟件生命周期中橫跨兩個階段:單元測試:模塊的編寫者和測試者是同一個人,編碼和單元測試屬于軟件生命周期的同一個階段;綜合測試:由專門的測試人員承擔這項工作。
2.為什么軟件測試不能由程序的編寫人員來做?
(1)測試是為了發現程序中的錯誤而執行程序的過程。
(2)正確認識測試的目標是十分重要的,測試目標決定了測試力案的設計。如果為了表明程序是正確的而進行測試,就會設計一些不易暴露錯誤的測試方案;相反,如果測試是為了發現程序中的錯誤,就會力求設計出最能暴露錯誤的測試方案。
(3)由于測試的目標是暴露程序中的錯誤,從心理學角度看,由程序的編寫者自己進行測試是不恰當的。
3.測試方法:(1)黑盒測試 :把程序看作一個黑盒子,完全不考慮程序的內部結構和處理過程 ;對程序接口進行測試,檢查程序功能是否能按規格說明書的規定正常使用; 程序是否能適當地接受輸入數據并產生正確的輸出信息; 程序運行過程中能否保持外部信息的完整性
(2)白盒測試 :把程序堪稱裝在一個透明的白盒子里,測試者完全知道程序的結構處理算法 ;按照程序內部的邏輯測試程序,檢測程序中的主要執行通路是否都能按 預定要求正確工作。
4.測試步驟:模塊測試,子系統測試,系統測試,驗收測試,平行運行。P151
5.集成測試是測試和組裝軟件的系統化技術,即是在把模塊按照設計要求組裝起來的同時進行測試,由模塊組裝成程序時兩種方法:非漸增式測試方法和漸增式測試方法。
6.P162 邏輯覆蓋標準:語句覆蓋,判定覆蓋,條件覆蓋,判定條件覆蓋,條件組合覆蓋,(還有點覆蓋,邊覆蓋,路徑覆蓋)。
7.設計測試用例:P16
2第八章
1.軟件維護:在軟件已經交付使用之后,為了改正錯誤或者滿足新的需要而修改軟件的過程。
2.維護工作量的一個模型: M = P + K × exp(c-d)其中: M是維護用的總工作量,P是生產性工作量,K是經驗常數,c是復雜程度d是維護人員對軟件的熟悉程度。exp,以自然對數e為底指數函數,Exponential(指數曲線)。
3.軟件可維護性與哪些因素有關?在軟件開發過程中應該采取哪些措施來提高軟件產品可維護性?
答:軟件的可理解性、可測試性、可修改性、可移植性 和可重用性是決定軟件可維護下的基本因素。
軟件生命周期每個階段的工作都和軟件可維護性有密切關系。良好的設計,完整準確易讀易理解的文檔資料,以及一系列嚴格的復審和測試,使得一旦發現錯誤時比較容易診斷和糾正,當用戶有新要求或外部環境變化時軟件能較容易地適應,并且能夠減少維護引入的錯誤。因此,在軟件生命周期的每個階段都必須充分考慮維護問題,并且為軟件維護預做準備。
第九章
1.面向對象的概念:對象,類,實例,消息,方法,屬性,封裝,繼承,多態性P209-215 對象:是封裝了數據結構及可以施加在這些數據結構上的操作的封裝體(類的實例)類:是對具有相同屬性和行為的一個或多個對象的描述(支持繼承的抽象數據類型)實例:是由某個特定的類所描述的一個具體的對象
消息:就是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明。由3部分組成:接收消息的對象,消息選擇符,零個或多個變元
方法:是對象所能執行的操作,描述了對象執行操作的算法,響應消息的方法
屬性:類中所定義的數據,對客觀世界實體所具有的性質的抽象
封住:就是信息隱藏,通過封裝對外界隱藏了對象的實現細節
繼承:子類自動地共享基類中定義的數據和方法的機制
多態性:指子類對象可以像父類對象那樣使用,同樣的消息既可以發送給父類對象也可以發送給子類對象
2.面向對象建模:描述系統數據結構的對象模型,描述系統控制結構的動態模型,描述系統功能的功能模型。類名
3.對象模型:P217 屬性類圖符號:服務
4.表示關系的符號:類與類之間通常有關聯、泛化(繼承)、依賴和細化等4種關系關聯:表示倆個類的對象之間存在某種語義上的聯系
泛化:是通用元素和具體元素之間的一種分類關系
依賴:描述倆個模型元素(類,用例等)之間的語義連接關系
細化:用來協調不同階段模型之間的關系,表示各個開發階段不同抽象層次的模型之間的相關性,常常用于跟蹤模型的演變。
5.功能模型:用例圖包含的模型元素有系統、行為者、用例及用例之間的關系P224
第十章
1.面向對象分析,就是抽取和整理用戶需求并建立問題域精確模型的過程
2.建立對象模型、動態模型、功能模型的基本方法P235-255
第三篇:軟件工程導論復習材料
1.軟件工程基本概念
1.()因素促使計算機系統越來越復雜。
A.計算機內存和存儲容量上的巨大增長
B.外部輸入/輸出選項的更加多樣性
C.計算機體系結構方面的深刻變化
D.以上所有選項
2.下面的()不再是現代軟件工程師關注的問題。
A.為什么不能在產品發布前去除軟件錯誤?
B.為什么軟件需要很長時間才能完成?
C.為什么開發一個軟件的成本這么高?
D.為什么計算機硬件的成本這么高?
3.軟件會逐漸退化而不會磨損,其原因在于()。
A.軟件備件很難訂購
B.軟件錯誤通常發生在使用之后
C.通常暴露在惡劣的環境下
D.不斷的變更使組件接口之間引起錯誤軟件
4.大多數軟件仍然是定制開發的,其原因在于()。
A.軟件組件重用是十分普遍的 B.可重用的組件太昂貴而無法使用
C.軟件在不使用其他組件的情況下很容易構造出來
D.商業組件在很多應用領域中可以得到
5.下面的()說法是正確的。
A.軟件危機在20世紀70年代末期全面爆發
B.當前先進的軟件工程方法已經解決了軟件危機的問題
C.軟件危機是指在計算機軟件的開發和維護過程中遇到的一系列嚴重問題
D.軟件危機是指在軟件產品中存在一系列的質量問題 1.瀑布模型本質上是一種()。
A、線性迭代模型
B、順序迭代模型C、線性順序模型
D、及早見產品模型 2.()是用戶和設計交換最頻繁的方法。
A、原型化方法
B、瀑布模型方法C、螺旋模型方法
D、構件組裝模型 5.在軟件開發模型中,提出最早、應用最廣泛的模型是()A.瀑布模型
B.噴泉模型
C.增量模型
D.螺旋模型
1.軟件工程的方法只適用于大型軟件的開發,對小型軟件的開發沒有幫助。()1.什么是軟件危機?其主要表現有那些?
1.有人認為?軟件工程過于耗費時間,并且妨礙開發人員的編程效率。?你是否認同這種觀點?請闡述理由。
2.需求分析 需求規格說明描述了()。
A.計算機系統的功能、性能及其約束
B.每個指定系統的實現
C.軟件體系結構的元素
D.系統仿真所需要的時間
7.軟件可行性研究實質上是要進行一次()需求分析、設計過程。A.簡化、壓縮的B.詳細的 C.徹底的D.深入的 11.下面說法不正確的是()。
A.流程圖不易表示數據結構
B.流程圖容易造成非結構化的程序結構
C.流程圖支持逐步求精
D.流程圖描述的是程序的邏輯結構 1.需求分析中開發人員要從用戶那里了解()。
A、軟件做什么B、用戶使用界面C、輸入的信息D、軟件的規模
2.需求分析階段,分析人員要確定對問題的綜合需求,其中最主要的是()需求。A、功能 B、性能 C、數據 D、環境 24.軟件可行性研究一般不考慮()
A.是否有足夠的人員和相關的技術來支持系統開發 B.是否有足夠的工具和相關的技術來支持系統開發 C.待開發軟件是否有市場、經濟上是否合算 D.待開發的軟件是否會有質量問題 25.需求規格說明描述了()
A.計算機系統的功能、性能及其約束 B.每個指定系統的實現 C.軟件體系結構的元素
D.系統仿真所需要的時間
26.需求分析階段,分析人員要確定對問題的綜合需求,其中最主要的是()需求 A.功能
B.性能
C.數據
D.環境
7.成本效益分析的目的是從
角度評價開發一個項目是否可行。
2.軟件需求規格說明書在軟件開發過程中具有重要的作用,它是軟件可行性分析的依據。3.()目前存在一個很普遍的現象,即不同的客戶提出的需求是相互矛盾的,但每個人都爭辯自己是正確的。
5.()在需求分析過程中,分析員要從用戶那里解決的最重要的問題是明確軟件做什么。2.可行性研究主要確定問題分析階段所確定的問題是否有可行的解。()6.在需求分析過程中,分析員要解決的最重要的問題是明確軟件做什么。()7.數據流圖的畫法?
3.軟件設計與編碼.概要設計階段產生的文檔不包括()。A.概要設計說明書
B.數據庫設計說明書 C.用戶手冊
D.開發進度月報.一個模塊把數值作為參數傳送給另一個模塊,這種耦合方式稱為()。A.數據耦合 B.公共耦合 C.控制耦合 D.標記耦合
10.與詳細設計相對應的是數據庫的()設計。A.概念
B.邏輯 C.物理
D.功能 19.序言性注釋主要內容不包括()。
A.模塊的接口
B.數據的描述
C.模塊的功能
D.數據的狀態 11.模塊化的目的是:()
A、增加內聚性 B、降低復雜性C、提高易讀性D、減少耦合性 12.軟件設計中劃分模塊的一個準則是()。
A、低內聚低耦合B、低內聚高耦合C、高內聚低耦合D、高內聚高耦合 13.下列耦合中,耦合程度最高的是:()A、標記耦合 B、控制耦合 C、內容耦合 D、公共耦合 14.模塊間耦合程度越高,說明模塊之間彼此依賴的程度越()。A、松散 B、緊密 C、無法判斷 D、相等 15.程序的三種基本控制結構是()。A、過程、子程序和分程序。B、順序、選擇和重復。C、遞歸、堆棧和隊列。D、調用、返回和轉移。
2.軟件設計階段一般分為
和
兩個階段。
3.軟件開發過程中,模塊化開發追求的目標是:__________________。6.數據建模常用的模型是______________。任何程序都可由
、和
3種基本控制結構構造。這3種基本結構的共同點是
、。
4.軟件人員的數量與軟件開發進度成正比。()
8.模塊化程序設計中,模塊越小,模塊化的優點越明顯。一般來說,模塊的大小都在10行以下。()
9.模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助于得到高內聚,低耦合度的軟件產品。()
10.程序設計風格指導原則提出,盡量多使用臨時變量。()8.模塊化程序設計中,模塊越小,模塊化的優點越明顯。()
4.軟件測試
13.()方法需要考察模塊間的接口和各模塊之間的聯系。A.單元測試
B.集成測試 C.確認測試
D.系統測試
16.在軟件生存周期中,時間最長、所花費的精力和費用也最多的階段是()。A.詳細設計
B.維護 C.概要設計
D.測試 16.軟件測試的目的是?()A、證明軟件的正確性
B、找出軟件系統中存在的所有錯誤 C、證明軟件系統中存在錯誤
D、盡可能多的發現軟件系統中的錯誤
17.()是以提高軟件質量為目的的技術活動。A.技術創新
B.測試
C.技術創造
D.技術評審
18.軟件維護工作的最主要部分是()。A、校正性維護 B、適應性維護 C、完善性維護 D、預防性維護
19.檢查軟件產品是否符合需求定義的過程稱為()。A、確認測試 B、集成測試 C、驗收測試 D、系統測試
20.軟件維護的副作用,是指()。A、開發時的錯誤 B、隱含的錯誤
C、因修改軟件而造成的錯誤 D、運行時誤操作
33.發現錯誤能力最弱的是()A.語句覆蓋
B.判定覆蓋
C.條件覆蓋
D.路徑覆蓋 34.()方法需要考察模塊間的接口和各模塊之間的聯系 A.單元測試
B.集成測試
C.確認測試
D.系統測試 1.軟件測試主要可分為________和________兩種類型。
4.軟件維護可分為四類,它們是改正性維護,________,________ 和________。8.軟件可維護性的因素是可理解性、可測試性、可修改性、可移植性和_____。
9. 軟件質量保證應從________開始,直到投入使用和售后服務的軟件生存期的每一階段中 4 的每一步驟。
3.為了加快軟件維護作業的進度,應盡可能增加維護人員的數目。()
5.質量保證是為了保證產品和服務充分滿足消費者要求的質量而進行的有計劃,有組織的活動。()
6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。()7.測試只能證明程序有錯誤,不能證明程序沒有錯誤。()3.軟件維護就是改正軟件中的錯誤。()
10.用黑盒法測試時,測試用例是根據程序內部邏輯設計的。(11.基本路徑測試的分析方法?)5
5.面向對象的軟件工程(UML)..()意味著一個操作在不同的類中可以有不同的實現方式。
A.消息
B.多繼承
C.多態性
D.封裝.順序圖反映對象之間發送消息的時間順序,它與()是同構的。A.用例圖
B.類圖
C.協作圖
D.狀態圖
28.在軟件工程學中,我們把一組具有相同數據結構和操作的對象的集合定義為()A.類
B.屬性
C.對象
D.消息
29.順序圖反映對象之間發送消息的時間順序,它與()是同構的 A.用例圖
B.類圖
C.協作圖
D.狀態圖 35.下列關于UML敘述不正確的是()A、UML是一種高級編程語言,且是可視化的B、UML是一種文檔化語言 C、UML是一種可用于詳細描述的語言
D、UML是一種構造語言
36.表示一種一般事物(父類)和特殊事物(子類)之間的關系是()A、依賴
B、關聯
C、泛化
D、實現 1.()用例參與者總是人員而不是系統設備。
6.()面向對象設計是在分析模型的基礎上,運用面向對象技術生成軟件實現環境下的設計模型。
8.()關系數據庫可以完全支持面向對象的概念,面向對象設計中的類可以直接對應到關系數據庫中的表。
9.UML用例圖的畫法?
6.項目管理
38.CMMI體系中,第三級是()A、已管理級
B、已量化管理級 C、已定義級
D、持續優化級 5.軟件配置管理中,基線是___________________________________。4.()軟件工作產品一旦成為基線就不能再更改了。4.什么是軟件配置管理?主要目標和手段是什么? 4.什么是基線?
第四篇:軟件工程導論填空題總結
1.軟件生存周期一般可分為問題定義、可行性研究、需求分析、設計編碼、測試、運行與維護階段。
2.按軟件的功能進行劃分,軟件可以劃分為系統軟件、支撐軟件 和應用軟件。
3.可行性研究主要集中在以下四個方面 經濟可行性、技術可行性、法律可行性 和抉擇。4.用戶界面的可使用性是用戶界面設計最重要的也是最基本的目標。
5.常見的軟件概要設計方法有3大類:以數據流圖為基礎構造模塊結構的結構化設計方法,以數據結構為基礎構造模塊的jackson方法_,以對象、類、繼承和通信為基礎的面向對象設計方法。
6.數據流圖和數據字典共同構成系統的邏輯模型。
7.軟件測試的方法有分析方法和非分析方法(即黑盒法)。8.單元測試一般以白盒測試為主,黑盒測試為輔。
9.成本估計方法主要有自底向上估計、自頂向下估計和算法模型估計三種類型。10.通常把在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學,也稱為范型,軟件工程方法學包含三個要素:方法、工具和過程。目前使用得最廣泛的軟件工程方法學,分別是傳統方法學和面向對象方法學
11.最基本的測試是集成測試和驗收測試。
12.所謂情景分析就是對用戶將來使用目標系統解決某個具體問題的方法和結果進行分析 13.需求分析過程應該建立3種模型,它們分別是數據模型,功能模型,行為模型.數據對象彼此之間相互連接的方式稱為聯系,也稱為關系。聯系可分為3種類型:一對一聯系,一對多聯系,多對多聯系。
14.軟件的驗證:一致性,完整性,現實性,有效性
15.四種維護的定義:1.改正性維護2.適應性維護3.完善性維護4.預防性維護。2.數據流圖中信息流的類型有(變換流)和(事務流)。3.軟件的定義是:軟件=程序+數據+(文檔),軟件是(程序及其文檔)。4.經典結構程序設計包括順序、選擇和(重復)三種結構。5.集成測試時對軟件結構中上層使用(自頂向下)的集成測試方法,對軟件結構中下層使用(自底向上)的集成測試方法。
6.軟件維護包括(改正性維護)、適應性維護、完善性維護、預防性維護。
7.面向對象方法學建模得到的三個基本子模型是(對象建模)、動態模型、功能模型。8.復雜大型問題的對象模型通常由主題層、類與對象層、結構層、(屬性層)、及服務層5個層次組成。
9.面向對象方法學是基于 軟件的重用。
10.軟件層次結構圖中方框間的連線表示
調用 關系。
21.在軟件開發過程中要產生大量的信息,要進行大量的修改,軟件配置管理能協調軟件開發,并使混亂減到最低程度。
22.規定功能的軟件,在一定程度上對自身錯誤的作用(軟件錯誤)具有屏蔽能力,則稱此軟件具有容錯功能的軟件。
23.McCall提出的軟件質量模型包括11 個軟件質量特性。
24.軟件可維護性度量的七個質量特性是可理解性、可測試性、可修改性、可靠性、可移植性、可使用性和效率。
25.為了便于對照檢查,測試用例應由輸入數據和預期的輸出結果兩部分組成。
26.程序設計語言的心理特性主要表現在 歧義性、簡潔性、傳統性、局部性和順序性。27.軟件結構是以 模塊 為基礎而組成的一種控制層次結構。
28.在結構化分析中,用于描述加工邏輯的主要工具有三種,即:結構化語言、判定表、判定樹。
29.結構化語言是介于自然語言和形式語言之間的一種半形式語言。
30.若年利率為i,不計復利,n年后可得21.系統流程圖是描述物理模型的傳統工具,用圖形符號表示系統中各個元素表達了系統中各種元素之間的(信息流動)情況。22.成本效益分析的目的是從(經濟)角度評價開發一個項目是否可行。
23.自頂向下結合的漸增式測試法,在組合模塊時有兩種組合策略:深度優先策略和(寬度優先策略)。
24.獨立路徑是指包括一組以前沒有處理的語句或條件的一條路徑。從程序圖來看,一條獨立路徑是至少包含有一條(在其他獨立路徑中未有過)的邊的路徑。
25.匯編語言是面向(機器)的,可以完成高級語言無法完成的特殊功能,如與外部設備之間的一些接口工作。
26.在JSP方法中解決結構沖突的具體辦法是(中間數據結構或中間文件)。
27.詳細設計的任務是確定每個模塊的內部特性,即模塊的算法、(使用的數據)。28.所有軟件維護申請報告要按規定方式提出,該報告也稱(軟件問題)報告。
29.有兩類維護技術:在開發階段使用來減少錯誤、提高軟件可維護性的面向維護的技術;在維護階段用來提高維護的效率和質量的(維護支援)技術。
30.科學工程計算需要大量的標準庫函數,以便處理復雜的數值計算,可供選擇的語言有:(FORTRAN語言)、PASCAL語言、C語言和PL/1語言。1.軟件的開發與運行經常受到硬件的限制和制約。(√)2.模塊內的高內聚往往意味著模塊間的松耦合。(√)3.Jackson圖只能表達程序結構,不能表達數據結構。(X)上述數據流圖表示數據A和B同時輸入變換成C。(X)5.軟件的質量好壞主要由驗收人員負責,其他開發人員不必關心。(X)6.判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。(√)7.應該盡量使用機器語言編寫代碼,提高程序運行效率,而減少高級語言的使用。(X)8.UML只能應用于軟件系統模型的建立。(X)9.容錯就是每個程序采用兩種不同的算法編寫。(X)軟件測試的目的是為了無一遺漏的找出所有的錯誤。(X)1.在進行總體設計時應加強模塊間的聯系。(N)2.系統結構圖是精確表達程序結構的圖形表示法。因此,有時也可以將系統結構圖當作系統流程圖使用。(N)
3.用黑盒法測試時,測試用例是根據程序內部邏輯設計的。(N)4.在程序調試時,找出錯誤的位置和性質比改正該錯誤更難。(Y)
5.以對象、類、繼承和通信為基礎的面向對象設計方法(OOD)也是常見的軟件概要設計方法之一。(Y)
6.如果通過軟件測試沒有發現錯誤,則說明軟件是正確的。(N)7.快速原型模型可以有效地適應用戶需求的動態變化。(Y)
8.模塊化,信息隱藏,抽象和逐步求精的軟件設計原則有助于得到高內聚,低耦合度的軟件產品。(Y)
9.集成測試主要由用戶來完成。(N)10.軟件危機完全是由于硬件問題引起的。(N)
第五篇:軟件工程導論知識總結范文
軟件工程導論 第一章:軟件工程學概論
1.軟件危機:是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
2.概括的說,軟件危機包括兩方面問題:如何開發軟件已滿足日益增長的需求;如何維護數量不斷膨脹的已有軟件。3.軟件危機的典型表現:對軟件開發成本和進度的估計常常很不準確;用戶對“已完成的”軟件系統不滿意的現象經常發生;軟件的質量往往靠不住;軟件常常是不可維護的;軟件通常沒有適當的文檔資料;軟件成本在計算機系統總成本中所占的比例逐年上升;軟件開發生產率提高的速度,遠遠跟不上計算機應用迅速不及深入的趨勢。
4.產生軟件危機的原因:在軟件開發和維護的過程中存在這么多嚴重的問題,一方面與軟件本身的特點有關,另一方面也和軟件開發與維護的方法不正確有關。
5.在實踐過稱中或多或少的采用了錯誤的方法和技術,這可能是使軟件問題發展成軟件危機的主要原因。
6.軟件不同與硬件,他是計算機系統中的邏輯部件而不是物理部件。
7.軟件不同于一般程序,他的一個顯著特點是估摸龐大,而且程序復雜性將隨著程序規模的增加而呈指數上升。
8.軟件本身獨有的特點確實給開發和維護帶來一些客觀困難。9.對用戶要求沒有完整的認識就匆忙著手編寫程序是軟件開發功臣失敗的主要原因之一。
10.一個軟件從定義、開發、使用和維護,直到最終被遺棄,要經歷一個漫長的時期,通常把軟件經歷的這個漫長的時期稱為生命周期。
11.軟件是程序、數據及相關文檔的完整集合。其中,程序是能夠完成預定功能和性能的可執的指令序列;數據是使程序能夠適當的處理信息的數據結構;文檔是開發、使用和維護程序所需要的圖文資料。
12.軟件工程是指導計算機軟件開發和維護的一門工程學科。13.軟件工程是:把系統的、規范的、可度量的途徑應用與軟件開發、運行和維護過程,也就是吧工程應用與軟件;研究前面所提到的途徑。
14.軟件工程的本質特性:軟件工程關注與大型程序的構造;軟件工程的中心課題是控制復雜性;軟件經常變化;開發軟件的效率非常重要;和諧的合作是開發軟件的關鍵;軟件必須有效地支持他的用戶;在軟件工程領域中通常由具有一種文化背景的人體另一種具有文化背景的人創造產品。
15.軟件工程的基本原理:用分階段的生命周期計劃嚴格管理;堅持進行階段評審;實行嚴格的產品控制;采用現代程序設計技術;結果應能清楚的審查;開發小組的人員應該少而精;承認不斷該井軟件工程的必要性。16.軟件工程包括技術和管理兩方面得內容,是技術與管理緊密結合所形成的工程學科。
17.通常把在軟件生命周期全過程中使用的一套技術方法的集合稱為方法學,也稱之為范型。18.方法學三要素:方法、工具和過程。
19.傳統方法學也稱為生命周期方法學或結構化范型。它采用結構化技術來完成軟件開發的各項任務,并使用適當的軟件工具或軟件工程環境來支持結構化技術的運用。
20.面向對象方法學與傳統方法學相反,它吧數據和行為看成是同等重要的,他是一種一數據為主線,把數據和對數據的操作緊密的結合起來的方法。
21.棉線對象方法學的要點:把對象作為融合了數據及在數據上的操作行為的統一的軟件構件;把所有的對象都劃分成類;按照父類與子類的關系,把若干相關類組成一個層次結構的系統;對象彼此間僅能通過發送消息互相聯系。
22.傳統方法學強調自頂而下順序的完成軟件開發的各項任務。23.面向方法學開發軟件的過程,是一個主動地多次反復迭代的演化過程。
24.面向對象范型的優點:降低了軟件產品的復雜性,提高了軟件的可理解性,簡化了軟件的開發和維護工作;促進了軟件重用。25.面向對象方法特有的繼承性和多態性,進一步提高了可重用性。26.軟件生命周期由軟件定義、軟件開發和運行維護3個時期組成,每個時期又進一步劃分成若干個階段。
27.軟件定義時期的任務:確定軟件開發工程必須完成的總目標;確定工程的可行性;導出實現工程目標應該采用的策略及系統必須完成的功能;估計完成該工程需要的資源和成本,并且制定工程進度表。
28.軟件定義時期分為三個階段:問題定義、可行性研究、需求分析。
29.開發時期階段組成:總體設計、詳細設計、編碼和單元測試、綜合測試。
30.維護時期的樹妖任務是使軟件持久的滿足用戶的需求。31.最基本的測試是集成測試和驗收測試。
32.通常的維護活動:改正性維護;適應性維護;完善性維護;預防性維護。
33.軟件過程是為了獲得高質量軟件所需要完成的一系列框架,它規定了完成各項的任務工作步驟。
34.把過程定義為:使用資源將輸入轉化為輸出的活動所構成的系統。
35.系統是相互關聯或相互作用的一組要素。
36.過程定義了運用方法的順序、應該交付的文檔資料、為保證軟件件質量和協調變化所需要的管理措施,以及標志軟件開發各個階段任務完成的里程碑。37.瀑布模型一直被廣泛采用的生命周期模型,仍然是軟件工程中應用的最廣泛的過程模型。
38.瀑布模型的特點:階段間具有順序性和依賴性;推遲延遲的觀點;質量保證的觀點。
39.瀑布模型的優點:可強迫開發人員采用規范的方法;嚴格的規定了每個階段必須提交的文檔;要求每個階段交出的所有產品都必須經過質量保證小組的仔細驗證。
40.所謂快速原型是快建立起來的可以在計算機上運行的程序,他所能完成的功能往往是最終端產品能完成的功能的一個子集。41.快速原型模型的主要優點:不帶反饋環,軟件產品的開發基本上是線性順序進行的。42.增量模型也稱漸進模型。
43.增量模型的優點:能在短時間內向用戶提交可完成部分工作產品;逐步增加產品功能可以使用戶有充裕的時間學習和適應新產品從而減少一個全新的軟件可能給客戶組織帶來的沖擊。44.螺旋模型的基本思想是,使用原型及其他方法來盡量降低風險。可以把它看作是在每個階段都增加了風險分析過程的快速模型。
45.螺旋模型的優點:對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件來發的一個重要目標;減少了過多測試或測試不足所帶來的風險;更重要的是,在螺旋模型中維護只是模型的另一個周期,在維護和開發之間并沒有本質區別。
46.噴泉模型是典型的面向對象的軟件過程模型之一。47.“噴泉”這個詞體現了面向對象開發過程迭代和無縫的特性。
48.Ratioanal統一過程是一種完整而且完美的軟件過程。49.RUP軟件開發生命周期是一個二維的生命周期模型。50.RUP九個核心工作流:業務建模;需求;分析與設計;實現;測試;部署;配置與變更管理;項目管理;環境。
51.RUP工作階段:初始階段、精化階段、構建階段、移交階段。52.極限編程:是敏捷過程中最富盛名的一個,“極限”含義是指把好的開發實踐運用到極致。
53.微軟過程生命周期:規劃階段、設計階段、開發階段、穩定階段、發布階段。
54.面向對象方法=對象+類+繼承+用消息通信
可行性研究
1.典型的可行性研究過程步驟:復查系統規模和目標;研究目前正在使用的系統;導出新系統的高岑邏輯模型;進一步定義問題;導出和評論供選擇的解法;推薦行動方針;草擬開發計劃;書寫文檔提交審查。
2.系統流程圖是概括的描繪物理系統的傳統工具。他的基本思想是用圖形符號以黑盒子形式描繪組成系統的每個部件(程序、文檔、數據庫、人工過程等)。
3.系統流程圖基本符號:處理(矩形)、輸入輸出(平行四邊形)、連接(圓形)、換頁連接(向下的五邊形箭頭)、數據流(箭頭)。
4.面對復雜的系統時,一個比較好的方法是分層次的描繪這個系統。
5.數據流圖(DFD)是一種圖形化技術,他面會信息流和數據從輸入移動到輸出的過程中所經受的變換。6.數據流圖是系統邏輯功能的圖形表示。
7.數據流圖符號:正方形(或立體型)表示數據的源點或終點;圓角矩形(或圓形)代表數據變換的處理;開口矩形(或兩條平行線)代表數據存儲;箭頭代表數據流,即特定數據流動的方向。8.數據存儲和數據流都是數據,僅僅所處的狀態不同,數據存儲是處于靜止狀態的數據,數據流是處于運動中的數據。9.畫數據流圖的基本目的是利用它作為交流信息的工具。另一個主要的用途是作為分析和設計的工具。
10.數據字典是關于數據信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。、11.數據流圖和數據字典共同構成系統的邏輯模型,沒有數據字典,數據流圖就不嚴格,然而沒有數據流圖,數據字典也難以發揮作用。12.數據字典4類元素的定義組成:數據流;數據流分量(即數據元素);數據存儲;處理。
13.數據字典中記錄數據元素的下列信息:一般信息;定義;使用特點;控制信息和分組信息。
14.數據元素組陳的方式:順序、選擇、重復,可選。15.“=”:等價于或定義為;“+”;和(即連接兩個分量);“【】”:或(即,從方括弧內列出的若干分量中選擇一個),通常用“|”號隔開供選擇的分量;“{}”:重復;“()”:可選。
16.數據字典最重要的用途是作為分析階段的工具。
17.卡片形式書寫數據字典:開片:名字、別名、描述、定義、位置。
18.軟軟開發成本主要表現為人力消耗。
19.估算技術:代碼行技術;任務分解技術;自動估算成本技術。20.成本/效益分析地第一步是估計開發成本、運行費用和新系統將帶來的經濟效益。
21.通常用利率的形式表示貨幣的時間價值。
22.通常用投資回收期衡量一項開發工程的價值。所謂投資回收期就是使累計的經濟效益等于最初投資所需要的時間。23.衡量工程價值的另一項經濟指是工程的純收入,也就是在整個生命周期之內系統的累計經濟效益與投資之差。需求分析 1.軟件系統的綜合要求:功能需求;性能要求;可靠性和可用性需求;出錯處理需求;接口需求;約束;你想需求;將來可能提出的要求。
2.分析系統的數據要求,這是軟件需求分析的一個重要任務,它通常采用建立數據模型的方法。
3.復雜的數據由許多基本的數據元素組成,數據結構表示數據元素之間的邏輯關系。
4.訪談是最早開始使用的獲取用戶需求的技術,也是迄今為止仍然廣泛使用的需求分析技術。他有兩種基本形式,分別是正式的和非正式的訪談。
5.軟件系統本質上是信息處理系統,而任何信息處理系統的基本功能都是把輸入數據轉變成需要的輸出信息。
6.結構分析方法就是面向數據流自頂而下逐步求精進行需求分析的方法。
7.面向團隊的需求收集法,稱為簡易的應用規格說明技術。這種方法提倡用戶與開發者密切合作,共同表示問題,提出解決方案要素,商討不同方案并指定基本要求。
8.面向團隊的需求方法的優點:開發者與用用戶不分彼此,齊心協力,密切合作;即時討論并求精;有能導出規格說明的具體步驟。
9.快速建立軟件原型是最準確、最有效、最強大的需求分析技術。他是快速建立起來的旨在演示目標系統主要功能的可運行的程序。
10.構建原型的要點是,他應該實現用戶看得見的功能,省略系統“隱含”功能。
11.快速模型的特性:快速;容易修改。
12.快隨構建和修改原型的方法和工具:第四代技術;可重構的軟件構件;形式化規格說明和原型環境。
13.通常,模型是由一組圖形符號和組織這些符號的規則組成。14.結構化分析實質上是一種創建模型的活動。
15.通過需求分析除了創建分析模型之外,還應該寫出軟件需求規格說明書,他是需求分析階段得出的最主要的文檔。16.通常用自然語言完整、準確、具體的描述系統的數據要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求
17.概念性數據模型是一種面向問題的數據模型,是按照用戶的觀點對數據建立的模型。
18.數據模型包含三種續相互關聯的信息:數據對象、數據對象的屬性、數據對象彼此間相互連接的關系。19.聯系:一對一;一對多;多對多。
20.ER圖(實體-聯系圖)包含了實體、關系、屬性,通常用矩形代表實體,用連接相關實體的菱形表示關系,用橢圓形或圓角矩形表示實體的屬性,并用直線把實體與其屬性連接起來。21.通常用“范式”定義消除數據冗余的程度。第一范式(1NF)數據冗余程度最大,第五范式(5NF)數據冗余程度最小。22.狀態轉換圖(簡稱狀態圖)通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統地行為。
23.狀態是任何可以被觀察到得系統行為模式,一個狀態代表系統的一種行為模式。
24.在狀態圖中定義的狀態主要有:初態、終態和中間狀態。在一張狀態圖中只能有一個初態,而終態則可以有0至多個。25.事件就是引起系統動作或轉換狀態的控制信息。
26.狀態圖中,初態用實心圓表示,終態用一對同心圓表示,中間狀態用圓角矩形表示。
27.活動表語法格式:事件名(參數表)/動作表達式;三種事件:entry(進入該狀態的動作), exit(退出該狀態的動作), do(該狀態下的動作)。
28.事件表達式的語法格式:事件說明【守衛條件】/動作表達式;守衛條件為真時,狀態轉換發生。
29.層次方框圖用樹形結構的一系列多層次的矩形框描繪的數據的層次結構。
30.Warnier圖和層次方框圖相似,W圖也用樹形層次結構描繪信息,但是這種圖形工具比層次方框圖提供了更豐富的秒胡手段。
31.IPO圖是輸入、處理、輸出圖的簡稱。一種圖形工具,能夠方便的描繪輸入數據、對數據的處理和輸出數據之間的關系。32.驗證軟件需求的4個方面:一致性、完整性、現實性、有效性。
33.PSL/PSA(問題陳述語言/問題陳述分析程序)系統:功能:描述任何應用領域的信息系統;創建一個數據庫保存對該信息系統的描述符;對描述符施加增加、刪除和更改等操作;產生格式化的文檔和關于規格說明書的各種分析報告。
34.PSL/PSA系統用描述符從系統信息流、系統結構、數據結構、數據導出、系統規模、系統動態、系統性質和羨慕管理共8個方面描述信息系統。第五章:總體設計
總體設計過程分為兩個階段: 1>.系統設計,確定系統的具體實現方案 2>.結構設計階段,確定軟件結構
總體設計的9個步驟: 1>.設想供選擇的方案 2>.選取合理的方案 3>.推薦最佳方案 4>.功能分解 5>.設計軟件結 6>.設計數據庫 7>.制定測試計劃 8>.書寫文檔 9>.審查和復查
書寫文檔(形成概要設計規格說明書): 1>.系統說明 2>.用戶手冊 3>.測試計劃 4>.詳細的實現計劃 5>.數據庫設計結果
模塊是由邊界元素限定相鄰程序元素的序列,而且有一個總體標識符代表它.(模塊式構成程序的基本構件)根據模塊數目和接口成本(模塊間的聯系成本)兩個因素來決定模塊的最適當數目.抽象:就是抽出事物的本質特征而暫時不考慮他們的細節.(抽象層次的過程實際上也是逐步求精的過程).抽象和求精是一對互補的概念,也是人類解決復雜問題時最常用,最有效的方法.抽象使得設計者能夠說明過程和數據,同時卻忽略了低層細節,求精則幫助設計者在設計過程中逐步揭示出低層細節。
信息隱藏原理指出:應該這樣設計和確定模塊,使得一個模塊內包含的信息(過程和數據)對于不需要這些信息的模塊來說是不能訪問的.局部化,是指把一些關系密切的軟件元素物理地放得彼此靠近,在模塊中使用局部數據元素是局部化的一個例子.模塊獨立性:使得每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關系很簡單.模塊的獨立程序由兩個標準度量:
1>.耦合:數據耦合,控制耦合,特征耦合,公共環境耦合,內容耦合
(盡量使用數據耦合,少用控制耦合和特征耦合,限制公共環境耦合的范圍,完全不用內容耦合)
2>.內聚:功能內聚,信息內聚,通信內聚,過程內聚,時間內聚,邏輯內聚,偶然內聚.啟發式規則: 1>.改進軟件結構提高模塊獨立性 2>.模塊規模應該適中
3>.深度,寬度,扇出和扇入都應適當 4>.模塊的作用或應該在控制域之內 5>.力爭降低模塊接口的復雜程度 6>.設計單入口單出的模塊 7>.模塊功能應該可以預測
層次圖和HIPO圖,結構圖(描繪軟件結構的圖形工具).結構圖:用尾部是空心圓表示傳遞的是數據,實心圓表示傳遞的是控制信息.面向數據流的設計方法:把信息流映射成軟件結構,信息流的類型決定了映射方法信息流類型:1>.交換流,2>.事務流 第六章:詳細設計
在設計人機界面過程中,遇到的4個問題: 1>.系統影響時間(長度,易變性)2>.用戶幫助設施(集成的/附加的幫助設施)3>.出錯信息處理
4>.命令交互(一個命令對應單一的功能)人機界面設計指南: 1>.一般交互指南涉及信息顯示,數據輸入和系統整體控制,因此這類指南是全局性的,忽略它們將承擔較大的風險.2>.信息顯示指南:用文字,圖形和聲音按位置移動和大小,使用顏色,分辨率和省略
3>.數據輸入指南:選擇命令,輸入數據和向系統提供輸入
過程設計的 工具: 1.程序流程圖
程序流程圖的缺點: 1>.程序流程圖本質上不是逐步求精的好工具,它誘使程序員過早的考慮程序的控制流程,而不去考慮程序的全局結構 2>.程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制 3>.程序流程圖不容易表示數據結構 2.盒圖 盒圖的特點:克服了程序流程圖的缺點,但自身缺點是不易擴展
1>.功能域(即一個特定控制結構的作用域)明確,可以從盒圖上一眼就看出來 2>.不能任意轉移控制
3>.很容易確定局部和全程數據的作用域
4>.很容易表現嵌套關系,也可以表示模塊的層次結構
3.PAD圖(問題分析圖):是用二維樹形結構的圖來表示程序的控制流.將這種圖翻譯成程序代碼比較容易
4.判斷表:能夠清晰的表示復雜的條件組合與應做的動作之間的對應關系.(在多重嵌套的條件選擇時)5.判定樹:容易繪制,易于理解,但不能判斷哪些組合不可能,葉子多
6.過程設計語言(偽碼):是用正文形式表示的數據和處理過程的設計工具.過程設計語言(PDL)的優點: 1>.可以作為注釋直接插在源程序中間
2>.可以使用普通的正文編輯程序或文字處理系統,很方便的完成PDL的書寫和編輯工作
3>.已經有自動處理PDL的程序存在,而且可以自動由PDL生成程序代碼
程序復雜程序的定量度量 1.流圖:只要順序執行俄流向都能合并,忽略箭頭,每個節點都是連通的(用圓表示節點代表一條或多條語句,箭頭線成為邊,代表控制流)由邊和結點圍成的面積為區域,當計算區域數時應該包括圖形外部為被圍起來的那個區域.計算環形復雜度的方法: 1>.流圖的區域數等于環形復雜度
2>.流圖G的環形復雜度V(G)=E-N+2,其中E是流圖中邊的條數,N是節點數
3>.流圖G的環形復雜度V(G)=P+1,其中P是流圖中判定節點的數目 第七章: 1.通常把編碼和測試統稱實現
2.所謂編碼就是把軟件設計結果翻譯成某種程序設計語言書寫的程序
3.為了使程序容易測試和維護以減少軟件的總成本,所選用的高級語言有理想的模塊化機制,以及可讀性好的控制結構和數據結構。為了便于調試和提高軟件可靠性,語言特點應該是編譯程序能夠多地發下程序中錯的錯誤,為了降低軟件開發和維護的成本,選用的高級語言應該有良好的獨立編譯機制。4.選擇程序設計語言的使用標準: 1).系統用戶的要求 2).可以使用的編譯程序 3).可以得到的軟件工具 4).工程規模 5).程序員的知識
6).軟件可移植性要求 7).軟件的應用領域 5.編碼的風格: 1).程序內部的文檔 2).數據說明 3).語句說明 4).輸入輸出
5).效率(通算法提高和決定的)提高效率 :
1).效率是性能的要求,因此應該在需求分析階段效率方面的要求
2).效率是靠設計來以高的
3).程序的效率和程序的簡單程序是一致的 6.討論效率問題: 1).程序運行時間 2).存儲器效率 3).輸入輸出效率 軟件測試基礎: 1.測試方法:
1).黑盒:如果已經知道了產品應該具有的功能,可以通過測試來檢驗是否每個功能都能正常使用。
2).白盒: 如果知道產品的內部工作過程,可以通過測試來檢驗產品內部動作是佛感召規格說明的規定正常進行
2.黑盒測試是在程序接口進行的 黑盒測試(功能測試)3.測試步驟: 模塊測試-》子系統測試-》系統測試-》驗收測試-》平行運行
4.測試階段的信息流: 1》軟件配置 2》測試配置 5.單元測試主要使用白盒測試技術,而且對多個模塊的測試可以并行的進行 6.測試重點: 1).模塊接口 2).局部數據接口 3).重要的執行通路 4).出錯處理器 5).邊界條件
7.軟件測試:為了發現錯誤而執行代碼過程 8.程序調試:為了診斷和改正程序中錯誤的錯誤代碼 9.集成測試是測試盒組裝軟件的系統化技術
10.驗證指的是保證軟件正確地實現了某個特定要求的一系列活動,而確認指的是為了保證軟件確實滿足了用戶需求而進行的一系列活動
11.需求分析階段產生的軟件需求規格說明書。第八章: 軟件維護:在軟件交付使用之后,為了改正錯誤或者滿足新的需要而修改的過程
改正性維護:把診斷和改正錯誤的過程稱為改正性維護
適應性維護:為了和變化了的環境適當的配合而進行的修改軟件的活動是既必要而又經常性的活動
完善性維護:在軟件使用的過程中,用戶往往提出增加新功能或修改已有功能的建議,還可能提出一般性的改進意見
預防性維護:為了改進未來的標準性或可靠性或為了給未來奠定更好的基礎而修改軟件
軟件維護的過程: 1.維護組織 2.維護報告:
⑴滿足維護要求表中提出的要求所需要的工作量 ⑵維護要求的性質 ⑶這項要求的優先次序 ⑷與修改有關的事后數據 3.維護的事件流 4.保存維護記錄 5.評價維護活動: ⑴每次程序運行平均失敗的次數 ⑵用于每一類維護活動的總人時數
⑶平均每個程序每種語言每種維護類型,所做的程序變動數 ⑷維護過程中增加或刪除一個原語句平均花費的人時數 ⑸維護每種語言所花費的人時數 ⑹一張維護要求表的平均周轉時間 ⑺不同維護類型所占的百分比
軟件的可維護性的定義:維護人員理解改動改正或改進這個軟件的難易程度
決定軟件可維護的因素主要有: 1).可理解性 2).可測試性 3).可修改性 4).可移植性 5).可重用性
重用指同一事物不做修改或稍加改動就在不同環境中多次重復使用
以下一個方面可以提高軟件的可維護性: 1).軟件中可使用的可重用的構件越多,軟件的可靠性越高,改正性維護需求需求就越少
2).軟件中可使用的可重用的構件越多,適應性和完整性就越容易,文檔影響軟件可維護性的決定因素
軟件系統的文檔可分為用戶文檔和系統文檔
軟件文檔應滿足下數要求: 1).必須描述如何使用這個系統 2).必須描述怎樣安裝和管理這個系統 3).必須描述系統需求和設計 4).必須描述系統的實現和測試
用戶文檔至少包含下數: 1).功能描述 2).安裝文檔 3).使用手冊 4).參考手冊 5).操作員指南
所謂系統文檔只從問題定義需求說明到驗收測試計劃,這樣一系列和實現有關的文檔
可維護性是所有軟件都應該具備的基本特點
代碼復審應該強調編碼風格和內部說明文檔這兩個影響可維護性的因素
配置復審在測試結束是進行正式的可維護性復審
配置復審的目的是保證軟件配置的所有成分都是完整的,一致的和可理解的
為了便于修改和管理已經編目歸檔了, 軟件在工程過程模型的六類活動: 1).庫存目錄分析 2).文檔重檔 3).逆向工程 4).代碼重構 5).數據重構 6).正向工程 第九章: 面向對象方法學的出發點和基本原則是盡可能模擬人類習慣的思維方式,使開發軟件的方法與過程盡可能接近人類認識世界解決問題的方法于過程,也就是使描述問題的問題空間與實現解決的解決空間在結構上盡可能一致
面向對象方法學具有以下4個要點: 1).認為客觀世界是又各種對象組成,任何事物都是對象 2).把所有對象都劃分成各種對象類,每個對象都定義了一組數據和一組方法
3).按照子類與父類的關系把若干個對象類組成一個層次結構的系統
4).對象彼此之間僅能通傳遞消息互相聯系
面向對象方法學的優點有: 1).與人類習慣的思維方法一致 2).穩定性好 3).可重用性好
4).較易開發大型軟件產品 5).可維護性好
由于以下因素使得面向對象方法所開發的軟件可維護性好: 1).穩定性比較好 2).較容易修改 3).容易理解 4).易于測試和調試
面向對象方法學中的對象是由描述該對象性的數據以及可以對這些數據施加的所有操作封裝在一起所構成的同意體
對象是封裝了數據結構以及施加在這些數據結構上的操作的封裝體
對象有如下基本特點: 1).以數據為中心 2).對象是主動的 3).實現了數據封裝 4).本質上具有并行性 5).模塊獨立性好
類就是對具有相同數據和相同操作的一組相似對象的定義
類是支持繼承的抽象數據類型而對象就是類的實例
實例就是由某個特定的類所描述的一個具體的對象
消息是要求某個對象執行在定義它的那個類中所定義的某個操作的規格說明
消息由三部分組成 1).接受消息對象 2).消息選擇符 3).零個或多個變元
方法就是對象所執行的操作,也就是類中所定義的服務
屬性就是類中所定義的數據,它是對客觀世界實體所具有的性質的抽象
對象具有封裝性的條件如下: 1).有一個清晰的邊界 2).有確定的接口 3).受保護的內部實現
繼承是指直接獲得已有的性質和特征而不必重復定義它們
多態性是指子類對象可以像父類對象那樣使用同樣的消息既可以發送給父類對象也可以發送給子類對象
函數重載是指同一個作用域內的若干個參數特征不同的函數可以使用相同的函數名字
運算符重載是指同一個運算符也可以施加于不同類型的操作數上面
所謂模型就是為了理解事物而對事物做出的一種抽象,是對事物一種無歧義的書面描述
用面向對象方法開發軟件通常需要建立3中模式: 1).描述系統數據結構的對象模型 2).描述系統控制結構的動態模型 3).描述系統的功能的功能模型
關聯是雙向的,可在一個方向上為關聯起一個名字,在另一個方向上起另一個名字
聚集也稱聚合,是關聯的特例聚集表示類與類之間的關系,是整體與部分的關系
共享聚集在聚集關系中處于部分個對象可同時參與多個屬于整體對象的構成
泛化關系就是通常所說的繼承關系,是通用元素和具體元素之間的一種分類關系
沒有具體對象的類稱為抽象類
預定義的類約束有四種: 1).多重 2).不相交 3).完全 4).不完全
多重繼承指的是一個子類可以同時多次繼承同一個上層基類
依賴關系描述兩個模型元素之間的語意連接關系,其中一個模型元素是獨立的,另一個模型元素不獨立,它依賴于獨立的獨立的模型元素
當對同一個事物在不同抽象層次上描述時這些描述之間具有細化關系
細化用來協調不同模型之間的關系,表示各個開發階段不同抽象層次之間的相關性 第十三章:
管理:通過計劃組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程.軟件項目管理貫穿于軟件的整個生命周期之中.軟件管理項目過程從一組項目計劃活動開始,而制定計劃的基礎是工作量估算和完成期限估算.為了使估算項目的工作量和完成期限,首先需要估算軟件的規模.度量軟件規模的技術: 1>.代碼行技術:比較簡單的定量估算軟件規模的方法.2>.功能點技術:依據對軟件信息域特性和軟件復雜性的評估結果估算軟件規模,用功能點(FP)為單位.信息域的五個特性:輸入項數,數出項數,查詢數,主文件數,我外部接口數.估算功能點的步驟: 1>.計算未調整的功能點數UFP 2>.計算技術復雜性因子TCF 3>.計算功能點數FP 工作量:軟件規模(KLOC或FP)的函數。單位:人月.工作量估算常用模型:靜態單變量模型,動態多變量模型,COCOMO2模型.COCOMO2構造性成本模型,給出了三個層次的軟件開發工作量估算模型:
1>.應用系統組織模型:主要用于估算構建原型的工作量。2>.早期設計模型:適用于體系結構設計階段。
3>.后體系結構模型:適用于完成體系結構設計之后的軟件開發階段。
成本因素分為:產品因素、平臺因素、人員因素、項目因素。COCOMO2使用的5個分級因素:項目先例性、開發靈活性、風險排除度、項目組凝聚力、過程成熟度。
工程網絡是系統分析和系統設計的強有力的工具,用箭頭表示作業(即消耗資源又需要持續一定時間),用圓圈表示事件(并不消耗時間和資源).制定進度計劃的工具有Gantt圖和工程網絡。
機動時間=它結束事件的最遲時刻-它開始事件的最早時刻-持續時間.人員組織: 1>.民主制程序員組
2>.主程序員組(特性:專業化、層次化)3>.現代程序員組
軟件質量:軟件與明確的和隱含的定義的需求相一致的程序.具體地說是:軟件與明確的敘述的功能和性能需求,文檔中明確描述的開發標準以及任何專業開發的軟件產品都應該具有的隱含特征相一致的程度.軟件質量保證措施:(軟件復審是最重要的之一)1>.基于非執行的測試 2>.基于執行的測試 3>.程序正確性證明
正式技術復審包括走查和審查.走查有兩種方式:參與者驅動法,文檔驅動法。審查的基本步驟:綜述,準備,審查,返工,跟蹤。
軟件配置管理員是應用于整個軟件過程中的保護性活動,是在軟件整個生命期內管理變化的一組活動。目標是使變化能夠更正確且更容易被適應,在需要修改軟件時減少為此而花費的工作量。
能力成熟度模型是改進軟件過程的有效策略,以增量方式逐步引入變量,明確定義了5個成熟度級。一個軟件開發組織可用一系列小的改良性步驟買入更高的成熟度等級。