軟件工程導論(第6版)知識點總結、復習課-圖文_第1頁
軟件工程導論(第6版)知識點總結、復習課-圖文_第2頁
軟件工程導論(第6版)知識點總結、復習課-圖文_第3頁
軟件工程導論(第6版)知識點總結、復習課-圖文_第4頁
軟件工程導論(第6版)知識點總結、復習課-圖文_第5頁
免費預覽已結束,剩余33頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、復習課酷愛YC第一章1、什么是軟件危機,什么是軟件工程軟件危機是指在計算機軟件開發(fā)、使用與維護過程中遇到的一系列嚴重問題和 難題。它包括兩方面:(1如何開發(fā)軟件,以滿足對軟件日益增長的需求;(2如何維護數(shù) 量不斷膨脹的已有軟件。軟件工程:采用工程的概念、原理、技術和方法來開發(fā)與維護軟件 ,把經(jīng)過時間 考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來 ,以經(jīng)濟地 開發(fā)出高質量的軟件,并有效地維護它。2、完整的軟件配置由哪些內容組成軟件配置主要包括程序,文檔和數(shù)據(jù)等成分。3、軟件生命周期分為哪3個時期和8個階段,每個階段的任務(工作分別是什么 重要性如何廠問題定義軟件定義可行性研究需

2、求分析總體設計詳細設計軟件生命周期軟件開發(fā)編碼與單元測試綜合測試運行維護一持續(xù)滿足用戶需求概括地說,軟件生命周期由軟件定義、軟件開發(fā)和運行維護3個時期組成1、軟件定義(系統(tǒng)分析。軟件定義時期的任務是:確定軟件開發(fā)工程必須完成的總目標;確定工程的可行性 ;導出實現(xiàn)工程目標應該采用的策略及系統(tǒng)必須完成的功能;估計完成該項工程需要的資源和成本,并且制定工程進度表。這個時期的工作通常又稱為系統(tǒng)分析,由系統(tǒng)分析員負責完成。軟件定義時期通常進一步劃分成3 個階段,即問題定義、可行性研究和需求分析。(1 問題定義,確定系統(tǒng)要解決的問題是什么。成果:關于問題性質、工程目標和工程規(guī)模的報告。(2 可行性研究,確

3、定問題是否有可用的、能行得通的解(包括:技術、經(jīng)濟、操作、社會等方面的可行性。這個階段的任務不是具體解決問題,而是研究問題的范圍 ,探索這個問題是否值得去解,是否有可行的解決辦法。成果:可行性研究報告。(3 需求分析,確定軟件系統(tǒng)的必須實現(xiàn)的功能、必須達到的性能、必須滿足的運行環(huán)境要求。系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認的系統(tǒng)邏輯模型。通常用數(shù)據(jù)流圖、數(shù)據(jù)字典和簡要的算法表示系統(tǒng)的邏輯模型。在需求分析階段確定的系統(tǒng)邏輯模型是以后設計和實現(xiàn)目標系統(tǒng)的基礎,因此必須準確完整地體現(xiàn)用戶的要求。成果:軟件需求規(guī)格說明書(SRS,內容包括:系統(tǒng)的邏輯模型;系統(tǒng)(

4、子系統(tǒng)的名稱、功能描述、接口、基本數(shù)據(jù)結構、性能、設計需求、開發(fā)標準、驗收原則等。2、軟件開發(fā)。開發(fā)時期具體設計和實現(xiàn)在前一個時期定義的軟件,它通常由下述4個階段組成 :總體設計,詳細設計,編碼和單元測試,綜合測試。其中前兩個階段又稱為系統(tǒng)設計 ,后兩個階段又稱為系統(tǒng)實現(xiàn)。(1 總體設計(概要設計,回答“怎樣實現(xiàn)目標系統(tǒng)”。建立系統(tǒng)的總體結構,劃分子系統(tǒng);確定系統(tǒng)由哪些模塊組成,各子系統(tǒng)間、各模塊間的關系(包括定義各子系統(tǒng)接口界面和各功能模塊的接口,設計全局數(shù)據(jù)庫或數(shù)據(jù)結構,規(guī)定設計約束,制定組裝測試計劃。成果:概要設計說明書、數(shù)據(jù)庫或數(shù)據(jù)結構說明書、系統(tǒng)的組裝(集成測試計劃等文檔。(2 詳細

5、設計任務就是把解法具體化,也就是回答: “應該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”, 設計每個程序模塊的內部細節(jié),包括數(shù)據(jù)結構、算法以及各程序模塊間的接口信息,并設計模塊的單元測試計劃。成果:詳細設計規(guī)格說明和單元測試計劃等詳細設計文檔。以上(1、 (2 又合稱為軟件設計。(3 編碼和單元測試這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。根據(jù)詳細設計規(guī)格說明,選用某種程序設計語言把詳細設計的結果轉化為機器可運行的源程序模塊;運行和調試每一個程序模塊;每編寫出一個程序模塊的源程序,調試通過后,即對該模塊進行單元測試。成果:按一定規(guī)則存在盤上的通過了單元測試的各功能模塊的集合;詳細的單元測試

6、報告等文檔。(4 綜合測試通過各種類型的測試(及相應的調試使軟件達到預定的要求。最基本的測試是集成測試和驗收測試。成果: 滿足概要設計要求、可運行軟件系統(tǒng)和源程序清單;組裝測試報告等文檔。 驗收測試報告、項目開發(fā)總結報告,向用戶提交的源程序清單、最終用戶手冊、操作手冊等文檔資料;由專家、用戶負責人、軟件開發(fā)和管理人員組成軟件評審小組對軟件驗收測試報告、測試結果和軟件進行評審 ,最終驗收軟件產(chǎn)品。以上(3、(4 又合稱為軟件實現(xiàn)。三種不同的軟件測試:單元測試、集成測試、驗收測試。3、軟件運行與維護軟件技術人員通過各種維護活動使軟件系統(tǒng)持久滿足用戶需要。通常有4類維護活動:改正性維護,也就是診斷和

7、改正在使用過程中發(fā)現(xiàn)的軟件 錯誤;適應性維護,即修改軟件以適應環(huán)境的變化;完善性維護,即根據(jù)用戶的要求改 進或擴充軟件使它更完善;預防性維護,即修改軟件為將來的維護活動預先做準備。成果:更新后的軟件產(chǎn)品:準確記錄維護活動的文檔。4、幾種傳統(tǒng)軟件工程生命周期模型:瀑布模型:基本思想、主要優(yōu)點傳統(tǒng)的瀑布模型基本思想:瀑布模型嚴格按照軟件生存周期各個階段來進行開發(fā),上一階段的輸 出即是下一階段的輸入,并強調每一階段的嚴格性。它規(guī)定了各階段的任務和應提 交的成果及文檔,每一階段的任務完成后,都必須對其階段性產(chǎn)品(主要是文檔進行評 審,通過后才能開始下一階段的工作。因此,它是一種以文檔作為驅動的模型。優(yōu)

8、點:可強迫開發(fā)人員采用規(guī)范的方法;嚴格地規(guī)定了每個階段必須提交的文檔 要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質量保證小組的仔細驗證??焖僭湍P停夯舅枷牖舅枷?軟件開發(fā)人員根據(jù)用戶提出的軟件基本需求快速開發(fā)一個原型,以便 向用戶展示軟件系統(tǒng)應有的一部分或全部功能和性能,同時使用戶熟悉系統(tǒng)。在征 求用戶對原型的初步意見后,進一步使需求全面化、精確化,并據(jù)此改進、完善原 型。如此迭代,直到軟件開發(fā)人員和用戶都通過原型確認軟件系統(tǒng)的需求并達成一 致的理解為止。軟件需求確定后,便可進行設計,編碼、測試等以后的各個開發(fā)步 驟。增量模型:基本思想、主要優(yōu)點I需求分析I基本思想:把一個軟件產(chǎn)品劃分為一系列

9、的增量構件來設計、編碼、集成和測 試,并逐個添加到軟件產(chǎn)品中去,逐步向用戶提交產(chǎn)品。每個構件能夠完成特定的功 能優(yōu)點:(1軟件的實現(xiàn)和維護階段沒有明顯的分界線;(2用戶在很短時間內就可以使用產(chǎn)品的部分功能(3用戶適應新產(chǎn)品的時間較充裕(4構件的分解要易于測試、規(guī)模適中(5軟件的體系結構是開放的,易于擴充和維護螺旋模型:引入的原因,與瀑布模型、快速原型模型的聯(lián)系基本思想:軟件風險是任何軟件開發(fā)項目中都普遍存在的實際問題 ,項目越大,軟 件越復雜,承擔該項目所冒的風險也越大。軟件風險可能在不同程度上損害軟件開 發(fā)過程和軟件產(chǎn)品質量。構建原型是一種能使某些類型的風險降至最低的方法。螺 旋模型的基本思

10、想是,使用原型及其他方法來盡量降低風險。聯(lián)系:簡化的螺旋模型是在快速原型模型的基礎上擴展而成的,把它看作在每個 階段之前都增加了風險分析過程的快速原型模型。完整的螺旋模型,將瀑布模型與原型模型結合起來,并且加入前兩種模型均忽略 了的風險分析安而藥T常制:宵聃于天空啊例黜唱學人只附用亂 管崖,的科于翎閉我方范 和工整潮片,枇江耀法方,弊我旺耳目M點即雖相巴車.嘉曝皇的塊點*11#歲上1嘎 基不機便怕r苦州出Wt火之)俎句的近蚪苴法需 “力模住禪聞行H3)看中按慳鼠嘴;修地崎凰斷豹的雷欣.而讀典曬.(4、cme*怪q必/軻0日開中的后哧離戶才悌看時,aetx.r網(wǎng)的中匕墨新幽使用題 (1 )聞戶的

11、吟E耳澧裝至面.且在開陽的沒有跖少安優(yōu).(2)并營人恥用nffi應聞轅UM 乂 3 )第戶圖注電球攜非R由底X4)開盛工作 期周門裾與的e/用UL甑返貨貨磨軍F優(yōu)點(I)可前律愿比HR好硼&武S宜.Ufi庚913哪址,<1)靜0千開節(jié)與麻II舸同他;N J開打前用值fHfclgE目時用戶.缶悅法小原空瑛皇的副土 I 1U 上戶與同出者充原空好干同一 ? |君與 古生而計出k生 以小斗i -F率月產(chǎn)雙人情史曲*i.信叱WI*鼻口的燃冏外州I附脩開用的物呦附限制解梢快理的厚刺H靠I目I ? ) 用打給精即可11;;.帝邛梅聽情fOr料的開著用I f 3 |酒行產(chǎn)品得也計福勺,魄 ;:

12、Tk 親特中.用王善自前丁作輔 片母一后號才H,內身才,修,碼缶匕(1)率用空,律藥比總是人詩修配力區(qū).制鼾哈不用酣人人人力直莪:12 夔M . (司皿人EQFf ” ;" J可骷速mt好天口.時串戶代用健門附附FE.陽像7千口口 1 1J鼻 開力怫西距命尊景手*曰匹,煙 立件5憑日缶FF液工II洋#鰭冷(!)郢3;£31戶子;戶出產(chǎn)I斗理州日祠,內認人仙九.勺梅組KJ任淮國知勒;. , R|i.加京臬1g比川村竊由氣幡耳 4而!!:/坪.挈M卿M*才*就目.事播取雨肝用范fll f1唐柘回鏟層升單虞跖田季開苒.期中總莽修硼 12 ) 時定顯E產(chǎn)情求的產(chǎn)品.用R1把用電空X

13、 3】時制iH型)里址ttG城而旦巴 自血生雄朝:& 懵空色爬”中涉臺的.酶吃點11畸tH9性可在任面目曬巾命時跖安萱42)小岫驗 出量推通我曳泉嫩幽蜂計空駕值/容骷r( 5)容 F腐如與的的修的升直帛注下 *口千詛用正腐斤煙次所咽口的可12tl ,(4)情雷叫值看下!”*辜分圾口的帝恒 .出面性或小生鈣g?+f5T大用不kM碼靚點.(1)通國理具甚微駕車*O4¥牯鯉的U號0901電 K 咽收煙配日R電串,2"此忸昌川時4.3. 加星展步I上JH步的值 代洪酢需姐瓜河友感奉,回:!用交時外HSF收力朗履出我回 «K. T空向昌+ 飛工魄日段告 W.什么是:

14、經(jīng)濟可行性、技術可行性、運行與操作可行性、法律可行性(1 經(jīng)濟可行性:這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎?估算項目的開發(fā)成本和系統(tǒng)投入使用后可能帶來的利潤,進行成本/效益分析,從經(jīng)濟角度判斷系統(tǒng)開發(fā)是否“合算 ”。(2 技術可行性:使用現(xiàn)有的技術能實現(xiàn)這個系統(tǒng)嗎?根據(jù)客戶提出的系統(tǒng)功能、性能要求,從開發(fā)者的技術實力、以往工作基礎、問題的復雜性等出發(fā),判斷系統(tǒng)開發(fā)在時間、費用及其他各項約束條件限制下成功的可能性。(3 運行、操作可行性:系統(tǒng)的操作方式在這個用戶組織內行得通嗎?主要研究系統(tǒng)的運行方式在用戶單位是否可以被有效地實施,是否與原有其他系統(tǒng)相矛盾;系統(tǒng)的操作規(guī)程在用戶單位內是否可行,它

15、包括人事、科技政策、管理方法等等。(4 法律可行性:系統(tǒng)的開發(fā)使用,在當國當?shù)禺敃r合法嗎?利用軟件工程的方法設計開發(fā)軟件系統(tǒng)的過程需求分析的基本任務1. 確定需求-確定對系統(tǒng)的綜合要求(1 功能需求(2性能需求(3可靠性和可用性需求(4出錯處理需求(5 接口需求(6 約束 (7 逆向需求 (8 將來可能提出的要求2. 建立數(shù)據(jù)模型-利用圖形工具描述系統(tǒng)數(shù)據(jù)結構并將數(shù)據(jù)結構規(guī)范化,建立數(shù)據(jù)模型3. 導出系統(tǒng)的邏輯模型-通常用數(shù)據(jù)流圖、實體-聯(lián)系圖、狀態(tài)轉換圖、數(shù)據(jù)字典和主要的處理算法描述整個邏輯模型4. 編寫需求規(guī)格說明書5. 修正系統(tǒng)開發(fā)計劃本階段結束形成的基本文檔軟件需求規(guī)格說明書結構化分析

16、應建立哪三大模型,分別用什么工具描述數(shù)據(jù)模型數(shù)據(jù)流圖功能模型實體-聯(lián)系圖(E-R 圖行為模型狀態(tài)圖數(shù)據(jù)流圖、E-R圖、狀態(tài)轉換圖的構成數(shù)據(jù)流圖-系統(tǒng)邏輯功能的描述工具4種成分:源點和終點,處理,數(shù)據(jù)存儲,數(shù)據(jù)流E-R圖:實體(即數(shù)據(jù)對象-矩形框,關系-菱形框,屬性-橢圓形或圓角矩形狀 態(tài)轉換圖:狀態(tài),事件,狀態(tài)轉換數(shù)據(jù)字奧:數(shù)據(jù)字典是關于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素選 行定義的集合。它的作用正是在軟件分析和設計的過程中給人提供關于數(shù)據(jù)的描述信息. 數(shù)據(jù)流國和數(shù)據(jù)字典共同構成系統(tǒng)可行性研究階段的邏輯模型。數(shù)據(jù)字典的實現(xiàn)(1)用Case工具中的數(shù)據(jù)字典處理程序對數(shù)據(jù)字典進行生

17、威口舞盛,(2)通過手工制作卡片來制作數(shù)據(jù)字典.每張卡片上保存描述一個數(shù)據(jù)的信息,主要應該 包含下述這樣一些信息:名字、別名、描述、定義、位置.第五章1、總體設計過程包含哪兩個工作階段,各完成什么任務第一階段:系統(tǒng)設計階段,確定系統(tǒng)的物理實現(xiàn)方案(1設想(完善供選擇的方案(2選取合理的方案(3推薦最佳方案第二階段:結構設計階段,確定軟件的結構(1功能分解從實現(xiàn)的角度細化邏輯模型(2設計軟件結構(3設計數(shù)據(jù)庫(4制定測試計劃(5書寫文檔(6審查和復審2、軟件工程的中心課題是控制軟件的復雜度;在總體設計階段,軟件復雜度主 要體現(xiàn)為模塊獨立性(和全局數(shù)據(jù)結構復雜度;描述模塊獨立性的兩個指標分別是耦

18、合和內聚3、耦合的含義,1-8級耦合的具體含義,耦合級別的排列耦合(Coupling:是對軟件結構內不同模塊之間相互關聯(lián)程度的強弱的度量。它決于各個模塊之間接口的復雜程度、進入或訪問一個模塊的點以及哪些信息通 過接口傳遞。耦合度可以分為若干級別:無直接耦合強(低耦合)數(shù)據(jù)耦合特征耦合(中耦合)控制耦合伊卜部耦合(較強耦合以共耦合(1非直接耦合-兩個模塊沒有直接關系(如模塊1和模塊2,每一個都能獨立地 工作而不需要另一個模塊的存在。非直接耦合兩個模塊間的獨立性最強低耦合性(無直接耦合(低耦合),數(shù)據(jù)耦合、特征耦合(中耦合)控制耦合卜部耦合非直接耦合(2數(shù)據(jù)耦合-兩個模塊彼此間通過參數(shù)交換信息,而

19、且交換的信息僅僅是簡單的 數(shù)據(jù)信息。這屬于松散耦合。(3標記耦合-兩個模塊通過傳遞數(shù)據(jù)結構參數(shù)加以聯(lián)系(不是簡單數(shù)據(jù),而是記 錄、數(shù)組等,則稱這兩個模塊間存在標記偶合。開發(fā)票單價數(shù)量金額計算電費計嵬水費計算水費計算水電費數(shù)據(jù)耦合特征耦合(標記耦合(4特征耦合-屬于標記耦合,把整個數(shù)據(jù)結構作為參數(shù)傳遞,而被調用的模塊只需要使用其中一部分數(shù)據(jù)元素。P39開發(fā)票單價數(shù)量金額住戶情況計算電費控制耦合公共環(huán)境耦合(5控制耦合-一個模塊通過傳送開關、標志、名字等控制信息,明顯地控制選擇 另一模塊的某部分功能。控制耦合增加了理解和編程的復雜性,調用模塊必須知道被調模塊的內部邏輯, 增加了相互依賴。去除模塊間

20、控制耦合的方法:a.將被調用模塊內的判定上移到調用模塊中進行b.被調用模塊分解成若干單一功能模塊(6外部耦合-一組模塊都訪問同一全局簡單變量,而且不是通過參數(shù)傳遞該全局 變量的信息。(7公共環(huán)境耦合-兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用。公共環(huán)境 可以是全程變量、共享的通信區(qū)、內存的公共覆蓋區(qū)、任何存儲介質上的文件、物理設備等等。公共環(huán)境耦合的復雜程度隨耦合的模塊個數(shù)而變化,當耦合的模塊個 數(shù)增加時復雜程度顯著增加。公共環(huán)境偶合必不可少,但耦合模塊的數(shù)目應盡量少。(8內容耦合一P41Entry!Entry2不正孝梏人另一模塊多人口模塊一模塊直相 訪問另一康 塊的內部信 息(程序代 玲或數(shù)

21、據(jù)J內容耦合4、內聚的含義,1-7級內聚的具體含義,內聚級別的排列內聚(Cohesion標志同一個模塊內各個元素彼此結合的緊密程度 ,它是信息隱藏和局部化概念的自然擴展。高內聚:模塊內部完成單一的處理;低內聚:模塊內部各部分關聯(lián)不緊密,完成分 散的多個處理任務;設計時應該力爭做到高內聚。內聚度也可以分為若干級別低內 聚性,偉白匕甬偶然內聚。分 邏輯內聚1分 時間內聚3分 過程內聚5分 通信內聚7分 順序內聚9分(1偶然內聚-當模塊內各部分之間沒有聯(lián)系,或者即使有聯(lián)系,這種聯(lián)也很松散, 則稱這種模塊為偶然內聚模塊,它的內聚程度最低(2邏輯內聚-把幾種相關功能或邏輯上相似的功能組合在一個模塊內,每

22、次調用 由傳給模塊的參數(shù)確定執(zhí)行哪種功能。低 偶然內聚0分 弱(功能分散)邏輯內聚1分I模內時間內聚3分 塊聚過程內聚5分 ”偶然類聚邏輯類聚(3時間內聚-一個模塊包含若干必須在同一段時間內執(zhí)行的任務例如系統(tǒng)初始化模塊、系統(tǒng)結束模塊、緊急故障處理模塊等均是時間性聚合模 塊。(4過程內聚-一個模塊內的處理元素是相關的且僅有控制聯(lián)系,各處理元素必 須以特定次序執(zhí)行。(5通信內聚-模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或產(chǎn)生同一個輸出數(shù) 據(jù)。加工記錄新文件 > 改件一 修文一(6順序內聚-一個模塊內的處理元素既包含數(shù)據(jù)聯(lián)系也包含控制聯(lián)系,而且這些 處理必須順序執(zhí)行(通常一個處理元素的輸出數(shù)據(jù)作

23、為下一個處理元素的輸入數(shù) 據(jù)。* 1 2 3 - 3 4(7功能內聚-一個模塊中各個部分都是完成某單一功能必不可少的組成部分,或 者說該模塊中所有部分都是為了完成同一項具體功能而協(xié)同工作,緊密聯(lián)系,不可分 割的,則稱該模塊為功能內聚模塊。功能內聚是最高程度的內聚。信息內聚一這種模塊完成多個筒單功能,包個功能都在同一數(shù)據(jù)結梅上撰作,科圓功能 有一個唯一的入口點.這個模塊將根據(jù)不同的要求,躇定該執(zhí)行哪一個功能由于這個 橫塊的所有功能都是基于同一個數(shù)據(jù)結肉因此,它是一個信息內聚日猴塊,L;總內聚信息內聚模塊可以看成是多個功能內霰橫塊的組管.并且達到信息的BS蔽.即杷某個蜘E結構, 資源戢設備隱蔽在塊

24、內,不為別的模塊所知曉.5、如何將數(shù)據(jù)流圖轉換為初始的軟件結構圖/層次圖通過變換分析的方法第1步復查基本系統(tǒng)模型第2步復查并精化數(shù)據(jù)流圖。第3步確定數(shù)據(jù)流圖具有變換特性還是事務特性。第4步確定輸入流和輸出流的邊界,從而孤立出變換中心。第5步完成第一級分解”。第6步完成第二級分解”。第7步使用設計度量和啟發(fā)式規(guī)則對第一次分割得到的軟件結構進一步精化6、關于模塊設計的啟發(fā)規(guī)則啟發(fā)式規(guī)則(模塊化設計的經(jīng)驗寬度1 .改進軟件結構提高模塊獨立性2 .模塊規(guī)模應該適中3 .深度、寬度、扇出和扇入都應適當4 .模塊的作用域應該在控制域之內5 .力爭降低模塊接口的復雜程度6 .設計單入口單出口的模塊7 .模塊

25、功能應該可以預測第六章8 、詳細設計的目的(主要任務目的:為軟件系統(tǒng)的H圖/SC圖中的每一個模塊確定采用的算法(處理流程和模 塊內數(shù)據(jù)結構,選定某種表達工具給出精確的描述。任務:用一定的工具精確描述目標系統(tǒng),從而方便在編碼階段可以把這種描述直接翻譯成用某種程序設計語言書寫的程序。(1 確定每一模塊的算法(處理流程(2 確定每一模塊使用的局部數(shù)據(jù)結構(3 確定本模塊的接口和用戶界面(4 為每一模塊設計一組測試用例(單元測試計劃2、結構化程序設計1、什么是結構化程序設計(1 如果一個程序的代碼塊僅僅是通過順序、選擇和循環(huán)這3 種基本控制結構進行連接,并且每個代碼塊是單入口、單出口的,則稱這個程序是

26、結構化的。(2結構化程序設計是盡可能少用 GO TO語句的程序設計方法。最好僅在檢測 出錯誤時才使用GO TO語句,而且應該總是使用前向GO TO語句。(3如果允許使用LEAVE(或BREAK結構,則不僅方便而且會使效率提高很多。LEAVE或BREAK結構實質上是受限制的GO TO語句,用于轉移到循環(huán)結構 外面的語句。(4如果只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循 環(huán)這3種基本控制結構,則稱為經(jīng)典的結構程序設計;如果除了上述3種基本控制結 構之外,還允許使用DO-CASE型多分支結構和DO-UNTIL型循環(huán)結構,則稱為擴展 的結構程序設計;如果再加上允許使用LEA

27、VE(或BREAK結構,則稱為修正的結構 化程序設計。2、結構化程序設計中基本的控制流程順序型選擇型多情況選擇型(CASE 型)先判定型循環(huán)(DO-WHILE)后判定型循環(huán)(D0-IMIL)3、詳細設計的描述-程序流程圖、盒圖、PAD圖:什么是,基本符號和含義,畫1、程序流程圖-又稱為程序框圖,廣泛描述過程設計的方法?;痉枺▏覙藴薯樞蛐?選擇型可表示的控制結構見前圖(結構化程序設計中基本的控制流程2、盒圖(N-S圖出于要有一種不允許違背結構程序設計精神的圖形工具的考慮,Nassi和Shneiderman提出了盒圖,又稱為N-S圖。基本符號和表示的結構第一個任務第二個任務第三個任務FX條件

28、/ELSE 部分THEN 部分(b)CASE條件/值值2* , 值kCASE 1 部分CASE 2 部分*CASE n 部分1c)循環(huán)條件DO-WHIM- 部分U)DO-UNTJL部分循*下條件|(e)舉例第一個任務第二個任務第三個任務循環(huán)條件3、PAD 圖條件/TELSE 部分THEN 部分(b)DO-UN 11L部分CASE條件/值1E2» '« 0CASE 1部分CASE 2 部分t « 1CASE w部分(c)PAD是問題分析圖(problem analysis diagram用二維樹形結構的圖來表示程序 的控制流,將這種圖翻譯成程序代碼比較容易(

29、a順序(先執(zhí)行P1后執(zhí)行P2;(b選擇(IF C THEN P1 ELSE P2;(cCASE 型多分支;(dWHILE 型循環(huán)(WHILE C DO P;(eUNTIL 型循環(huán)(REPEA PUNTIL C;(f語句標號;(gg定義ij|WHILE C PP2| (d)(a) UNTIL C P 丁 PlJ P2(b) _使用PAD圖提供的定義功能來逐步求精的例子4、在詳細設計階段,軟件復雜度主要體現(xiàn)為程序的復雜程度,可用程序模塊的環(huán) 形復雜度(McCabe方法來度量,或用Halstead方法來度量5、環(huán)形復雜度(McCabe方法來度量計算工具:流圖-退化了的程序流程圖McCabe方法根據(jù)程

30、序控制流的復雜程度定量度量程序的復雜程度,這樣度量出 的結果稱為程序的環(huán)形復雜度。為了突出表示程序的控制流,人們通常使用流圖(也稱為程序圖。所謂流圖實質 上是退化了的”程序流程圖,它僅僅描繪程序的控制流程,完全不表現(xiàn)對數(shù)據(jù)的具體 操作以及分支或循環(huán)的具體條件。計算方法:3種方法(1 流圖中的區(qū)域數(shù)等于環(huán)形復雜度區(qū)域:由邊和結點圍成的面積稱為區(qū)域。當計算區(qū)域數(shù)時應該包括圖外部未被圍起來的那個區(qū)域。即流圖的封閉區(qū)域數(shù)加1。(2流圖的環(huán)形復雜度V(G=E-N+2,其中,E是流圖中邊的條數(shù),N是結點數(shù)。(3流圖的環(huán)形復雜度V(G=P+1,其中,P是流圖中判定結點的數(shù)目。6、Halstead方法來度量-

31、計算方法Halstead方法是另一個著名的方法,它根據(jù)程序中運算符和操作數(shù)的總數(shù)來度量 程序的復雜程度。計算復雜度的方法:在圖形界面(或Web界面環(huán)境下,尤其是在交互系統(tǒng)的中j 個模塊的頁面數(shù)以及每個頁面上的項目數(shù),也是模塊復雜程度度量的依據(jù)。第七章1、編碼風格涉及的一系列內容源程序實際上也是一種供人閱讀的文檔,有一個文檔的風格問題。應該使程序具有良好的風格。源程序代碼的邏輯簡明清晰、易讀易懂是好程序的一個重要標 準。 源程序文檔化(程序內部的文檔 數(shù)據(jù)說明 語句構造 輸入輸出設計 程序的效率2、單元測試、集成測試、確認/驗收測試,測試計劃(包括用例在什么時候書寫 形成單元測試:-模塊測試模塊

32、測試的目的是保證每個模塊作為一個單元能正確運行,所以模塊測試通常又稱為單元測試。在這個測試步驟中所發(fā)現(xiàn)的往往是詳細設計和編碼的錯誤。集成測試 :子系統(tǒng)測試局部(模塊子系統(tǒng)子系統(tǒng)測試是按軟件結構把經(jīng)過單元測試的若干模塊放在一起形成一個子系統(tǒng)來測試。模塊相互間的協(xié)調和通信是這個測試過程中的主要問題,因此,這個步驟著重測試模塊間的接口。系統(tǒng)測試 全局(子系統(tǒng)完整系統(tǒng)系統(tǒng)測試是,按軟件結構,把經(jīng)過測試的若干子系統(tǒng)裝配成一個完整的系統(tǒng)來測試。在這個過程中不僅應該發(fā)現(xiàn)設計和編碼的錯誤,還應該驗證系統(tǒng)確實能提供需求說明書中指定的功能,而且系統(tǒng)的動態(tài)特性也符合預定要求。在這個測試步驟中發(fā)現(xiàn)的往往是軟件設計中的

33、錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤。不論是子系統(tǒng)測試還是系統(tǒng)測試,都兼有檢測和組裝兩重含義,通常合稱為集成測試。驗收測試-用戶參與驗收測試把軟件系統(tǒng)作為單一的實體進行測試,測試內容與系統(tǒng)測試基本類似但是它是在用戶積極參與下進行的,而且可能主要使用實際數(shù)據(jù)(系統(tǒng)將來要處理的信息進行測試。驗收測試的目的是驗證系統(tǒng)確實能夠滿足用戶的需要,在這個測試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。驗收測試也稱為確認測試。3、軟件測試與調試的目的軟件測試的目的就是在軟彳投入生產(chǎn)性運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯 誤。測試橫跨兩個階段:(1編寫出每個模塊之后就對它做必要的測試(稱為單元測試。(2在上一階段結束之

34、后,對軟件系統(tǒng)還應該進行各種綜合測試通常由專門的測 試人員承擔這項工作。上 軟件測試的直接目的是要衡量軟件產(chǎn)品是否符合預期;U軟件測試的根本目的是確保軟件滿足用戶需求;調試就是通過測試發(fā)現(xiàn)軟件的錯誤之后改正錯誤并進行再診斷。調試是測試階 段最困難的工作。調試是在測試發(fā)現(xiàn)錯誤之后排除錯誤的過程。調試的任務是進一 步診斷和改正程序中潛在的錯誤。4、軟件錯誤主要包括什么軟件錯誤指軟件產(chǎn)品中存在的導致期望的運行結果和實際運行結果間出現(xiàn)差異 的一系歹I問題,這些問題包括故障、失效、缺陷。1 .軟件故障是指軟件運行過程中出現(xiàn)的一種不希望或不可接受的內部狀態(tài)。2 .軟件失效是指軟件運行時產(chǎn)生的一種不可接受的

35、外部行為結果。3 .軟件缺陷是存在于軟件之中的那些不希望或不可接受的偏差。5、測試用例由什么組成IEEE對于測試用例給出的定義是:測試用例是一組測試輸入、執(zhí)行條件和預期 結果,目的是要滿足一個特定的目標,例如執(zhí)行一條特定的程序路徑或檢驗是否符合 一個特定的需求。測試用例可表示成:測試用例=輸入+輸出+測試環(huán)境其中,輸入是指測試數(shù)據(jù)和操作步驟;輸出是指系統(tǒng)的預期執(zhí)行結果;測試環(huán)境是 指進行軟件測試所必須的工作平臺和前提條件。6、軟件測試的方法C 人工測試方法(靜態(tài)測試方法I 計算機輔助靜軟件測試的J態(tài)分析方法策略和方法f白盒測試方法 I動態(tài)測試方法(1靜態(tài)測試-什么是靜態(tài)測試-對軟件(文檔進行分

36、析、檢查和審閱,不實際運行被測試的軟件。靜態(tài)測試名可找出3070%的邏輯設計錯誤,主要工作是對需求規(guī)格說明書、軟 件設計說明書、源程序做檢查和審閱(主要是閱讀文檔 包括:(1通過結構分析、流圖分析、代碼審查,指出軟件缺陷 (2是否符合標準和規(guī)范;(2動態(tài)測試-什么是白盒測試-什么是黑盒測試-什么是動態(tài)測試-通過運行軟件來檢驗軟件的運行結果和動態(tài)行為的正確性。動態(tài)測試的兩個基本要素:被測試程序、測試用例。動態(tài)測試有兩種典型的方法:黑盒測試和白盒測試。 (1黑盒測試被測對象輸入條件1* * «輸入條件制定義 :已經(jīng)知道了產(chǎn)品應該具有的功能,可以針對產(chǎn)品的每個(或主要功能點設計一組用例(包括輸入數(shù)據(jù)和預期輸出數(shù)據(jù),通過測試來檢驗是否每個功能都能正常使用;黑盒測試主要在以下方面進行:(1 a /洲t:(2菜單/幫助測試:(3發(fā)行測試:(4回歸測試黑盒測試的優(yōu)勢:a.黑盒測試方法對測試人員的技術要求相對較低;b.不需要了解程序實現(xiàn)的細節(jié),測試團隊與開發(fā)團隊可以并行完成各自的任務。黑盒測試的局限性:測試結果的覆蓋度不容易度量,測試的潛在風險較高。(2 白盒測試知道產(chǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論