軟件工程自考復習資料-全.doc_第1頁
軟件工程自考復習資料-全.doc_第2頁
軟件工程自考復習資料-全.doc_第3頁
軟件工程自考復習資料-全.doc_第4頁
軟件工程自考復習資料-全.doc_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章 緒論一、 軟件的基本概念1. 軟件是計算機系統(tǒng)中的程序及其文檔。2. 程序是計算機任務的處理對象和處理規(guī)則的描述;文檔是為了理解程序所需的闡述性的文書和資料。3. 文檔一般主要面向管理人員、開發(fā)人員、用戶、使用維護人員。4. 文檔在軟件工程中的作用:(1)提高軟件開發(fā)過程的能見度。(2)提高開發(fā)效率。(3)作為開發(fā)人員階段工作成果和結束標志。(4)記錄開發(fā)過程有關信息便于使用和維護。(5)提供軟件運行、維護和培訓等資料。(6)便于用戶了解軟件功能、性能。5. 軟件的生產(chǎn)經(jīng)歷了三個階段:* 程序設計時代:生產(chǎn)方式是個體手工勞動,使用工具是機器、匯編語言,主要通過匯編來實現(xiàn),不注重程序設計方法。* 程序系統(tǒng)時代:生產(chǎn)方式是作坊式小集團合作生產(chǎn),生產(chǎn)工具是高級語言,開始提出結構化方法。* 軟件工程時代:生產(chǎn)方式是工程化生產(chǎn),使用數(shù)據(jù)庫、網(wǎng)絡、先進的開發(fā)技術和方法。6. 軟件既是知識性(邏輯性)工業(yè)產(chǎn)品,具有一些獨特的特性是:* 軟件是邏輯產(chǎn)品,具無形性,通過計算機的執(zhí)行才能體現(xiàn)它的功能和作用。 * 軟件只會退化,不存在磨損和消耗問題。* 成本主要體現(xiàn)在軟件的開發(fā)和研制上,可進行大量的復制。* 主要靠腦力勞動生產(chǎn),開發(fā)和維護成本高。7. 軟件的主要結構和功能是在分析設計階段決定的。8. 軟件的復雜性主要體現(xiàn)在程序的復雜性,即模塊內程序的復雜性。直接關聯(lián)到軟件的簡單和可理解性、開發(fā)費用多少、開發(fā)周期長短和軟件潛伏錯誤的多少。二、 軟件危機1. 軟件危機是指在軟件開發(fā)和維護時遇到的一系列難以控制的問題導致的供需矛盾。出現(xiàn)在軟件發(fā)展的第二階段末期,隨著第三代計算機的誕生之際。2. 軟件危機主要體現(xiàn)在: * 軟件發(fā)展速度跟不上硬件的發(fā)展和用戶需求。 * 軟件成本和開發(fā)進度不能預先預算,用戶不滿意。 * 軟件產(chǎn)品質量差,成本高,可靠性沒有保證。 * 軟件可維護性差,產(chǎn)品沒有配套文檔。3. 軟件危機產(chǎn)生原因:(1)軟件規(guī)模變大,結構更加復雜。(2)軟件開發(fā)管理困難。(3)軟件開發(fā)技術和工具落后。(4)軟件開發(fā)費用增加。(5)采用落后的個體手工生產(chǎn)方式開發(fā)。4. 解決途徑:(1) 糾正對軟件開發(fā)的錯誤觀念。(2) 提高軟件工程管理水平,重視文檔重要性。(3) 使用好的軟件開發(fā)工具,研究軟件開發(fā)技術,規(guī)范軟件開發(fā)流程,提高開發(fā)效率。5. 為了克服軟件危機,人們首先想到要用形式化方法來開發(fā)軟件。三、 軟件開發(fā)1. 軟件開發(fā)的本質是實現(xiàn)問題空間的概念和處理邏輯到運行平臺的概念和處理邏輯間的映射。2. 軟件開發(fā)基本途徑:先通過需求建模,把問題域的概念和處理邏輯向需求(抽象)層次進行映射,再把需求層的概念和處理邏輯向設計(抽象)層進行映射,依次進行,直到映射到運行平臺這一抽象層為止。3. 軟件開發(fā)涉及的技術:過程方向(即求解軟件的開發(fā)邏輯)和過程途徑(即求解軟件的開發(fā)手段,基本手段是問題建模)。4. 軟件開發(fā)方法:是一種使用早已定義好的技術集及符號表示習慣來組織軟件生產(chǎn)的過程。5. 問題建模是指運用所掌握的知識,通過抽象,給出該問題的一個結構。建模手段有結構化方法、面向對象方法和諸多面向數(shù)據(jù)結構的方法。6. 模型是待建系統(tǒng)的任意抽象,包括所有的基本能力、特性或其他一些方面,而沒有任何冗余的細節(jié),是在特定意圖下所確定的角度和抽象層次上對物理系統(tǒng)的描述,通常包含對該系統(tǒng)邊界的描述、對系統(tǒng)內各模型元素以及它們之間關系的語義描述。7. 軟件系統(tǒng)模型大體分為概念模型和軟件模型,而軟件模型進一步分為設計模型、實現(xiàn)模型、部署模型。四、 軟件開發(fā)環(huán)境1. 軟件開發(fā)環(huán)境是相關的一組軟件工具的集合,支持一定的軟件開發(fā)方法或按照一定的軟件開發(fā)模型組織而成,與軟件生存期、軟件開發(fā)方法、軟件處理模型密切相關。l 按解決問題分類:程序設計環(huán)境、系統(tǒng)合成環(huán)境、項目管理環(huán)境。l 按演變趨向分類:以語言為中心的環(huán)境、工具箱環(huán)境、基于方法的環(huán)境(分為支持軟件開發(fā)周期特定階段的管理和開發(fā)過程管理。后者即項目計劃和控制、任務管理)。2. 軟件開發(fā)環(huán)境是高度集成的一體化系統(tǒng),主要目標是提高軟件開發(fā)的生產(chǎn)率、降低軟件成本。五、 軟件工具1. 軟件工具是指為支持計算機軟件的開發(fā)、維護、模擬、移植或管理而研制的程序系統(tǒng),是為了支持軟件人員開發(fā)和維護活動而使用的軟件。2. 軟件工具由工具、工具接口、工具用戶接口組成,主要目的是提高軟件生產(chǎn)率和改善軟件質量。3. 發(fā)展特點:(1) 由單個工具到多個工具集成化方向發(fā)展。(2) 重視用戶界面設計,不斷采用新理論技術。(3) 它的商品化推動軟件產(chǎn)業(yè)的發(fā)展,進而增加了對軟件工具的需求,促進了軟件工具的商品化過程。 4. 分為6類:模擬工具、開發(fā)工具、測試和評估工具、運行和維護工具、性能測試工具、程序設計支持工具。六、 軟件工程1. 由于軟件危機,產(chǎn)生了以軟件開發(fā)技術(主要研究軟件開發(fā)方法、過程、工具和環(huán)境)和軟件工程管理(主要研究軟件管理學、心理學、經(jīng)濟學)為研究內容的軟件工程學科,以達到軟件開發(fā)工程化的最終目標。2. 軟件工程是用科學知識、技術以及工程管理原則和方法來定義、開發(fā)、維護軟件,按預算和進度實現(xiàn)滿足用戶要求的軟件產(chǎn)品的一門綜合性的交叉學科。3. 軟件工程是一種自頂向下分階段實現(xiàn)的軟件程序開發(fā)方法,著重于建造軟件系統(tǒng),要用管理科學的方法和原理進行軟件生產(chǎn)的管理。4. 軟件工程的概念于1968年提出,涉及計算機科學、工程科學、管理科學、數(shù)學等領域。5. 軟件工程面臨的問題有:軟件費用、軟件可靠性、軟件可維護性、軟件生產(chǎn)率和軟件重用。6. 軟件工程過程是指規(guī)定了獲取、供應、開發(fā)、操作、維護、管理、支持過程時,要實施的過程、活動和任務。7. 軟件工程的縱向分解是把軟件生產(chǎn)分為幾個階段。七、 計算機輔助軟件工程1. 計算機輔助軟件工程(CASE),英文是 Computer Aided Software Engineering,是一組工具和方法的集合,可以輔助軟件開發(fā)生命周期各階段進行軟件開發(fā)。2. 較早期的CASE是結構的基于圖形的CASE。3. CASE領域是一個應用、集成和綜合的領域。它把軟件開發(fā)技術、軟件工具和軟件開發(fā)方法集成到一個統(tǒng)一而一致的框架,吸收了CAD、網(wǎng)絡、軟件工程、數(shù)據(jù)庫、操作系統(tǒng)和許多其他計算機領域的原理和技術。4. 根據(jù)支持的范圍,CASE工具可分為窄支持(支持單個過程任務的工具)、較寬支持(工作臺支持某一過程所有活動或某些活動)、一般支持(環(huán)境軟件過程所有活動或至少大部分活動)工具。另外還可根據(jù)支持過程和功能進行分類。5. CASE生存期步驟:CASE需求、CASE剪裁、CASE引入、CASE操作、CASE演化、CASE廢棄。6. CASE系統(tǒng)所涉及的技術有:支持軟件開發(fā)過程本身的技術、支持軟件開發(fā)過程管理的技術。從CASE系統(tǒng)產(chǎn)生方式看還有一種生成CASE系統(tǒng)的生成器所采用的技術:元-CASE技術。7. 集成化CASE的五級模型:l 平臺集成:工具運行在相同的硬件/操作系統(tǒng)平臺上。l 數(shù)據(jù)集成:不同軟件工程能相互交換數(shù)據(jù),工具使用共享數(shù)據(jù)模型來操作。分為三個級別:共享文件、共享數(shù)據(jù)結構、共享倉庫。l 表示集成:工具使用相同的用戶界面。分為三個級別:窗口系統(tǒng)集成、命令集成、交互集成。l 控制集成:工具激活后能控制其它工具的操作。l 過程集成:工具在一個過程模型和“過程機”的指導下使用。即CASE系統(tǒng)嵌入了關于過程活動、階段、約束和支持這些活動所需的工具的知識。第二章 軟件需求和軟件需求規(guī)約一、 可行性研究1. 可行性研究是用最小的代價在盡可能短的時間內確定該軟件項目是否能夠開發(fā),是否值得開發(fā),給出“行或不行”的回答。實質是以較抽象的方式進行一次簡化的、壓縮了的需求分析、設計過程。它是系統(tǒng)方案實現(xiàn)的必要性。2. 可行性研究任務:(1)先進行概要的分析研究,初步確定項目的規(guī)模和目標、約束和限制,把它們清楚的列出來。(2)分析員進行簡要的需求分析,抽象出項目邏輯結構,建立邏輯模型。(3)經(jīng)壓縮設計,探索出若干種可選的解決方法,對每種方法研究其可行性。3. 可行性研究主要考慮開發(fā)風險、資源有效性和技術等情況,具體分為: 技術可行性:指在現(xiàn)有條件下估算開發(fā)項目的技術風險。對項目的功能、性能、限制條件進行分析,要解決技術風險問題,研究硬件等開發(fā)資源的有效性。研究內容為:成本-效益分析、公司經(jīng)營長期策略、開發(fā)所需成本和資源、潛在的市場前景。 經(jīng)濟可行性:指進行開發(fā)成本的估算及預期取得經(jīng)濟效益的評估。研究范圍是效益分析。 社會可行性:涉及范圍有合同、責任、侵權、用戶組織的管理模式、規(guī)范及其他一些技術人員常不了解的陷阱。4. 可行性研究步驟:(1)確定項目規(guī)模和目標。(2)研究正在運行的系統(tǒng)。(3)建立新系統(tǒng)的高層邏輯模型。(4)導出和評價各種方案。(5)推薦可行的方案。(6)編寫可行性研究報告。5. 可行性研究報告的主要內容有:引言、可行性研究前提、對現(xiàn)有系統(tǒng)的分析、所建議系統(tǒng)的技術可行性分析、所建議系統(tǒng)的經(jīng)濟可行性分析、社會因素可行性分析、其他可供選擇的方案、結論意見。6. 項目開發(fā)計劃是一種管理性文檔,內容包括:項目概述、實施計劃、人員組織和分工、交付期限。7. 與“可行性研究報告”、“項目開發(fā)計劃”文檔有關的人員是管理人員和開發(fā)人員。與“程序維護手冊”文檔有關的人員是管理人員和維護人員。8. 可行性分析中,系統(tǒng)流程圖用于描述當前運行系統(tǒng)。二、 效益分析1. 成本-效益分析首先估算開發(fā)系統(tǒng)的開發(fā)成本,再與可能取得的效益進行比較和權衡。目的是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。2. 效益分為有形效益(用貨幣的時間價值、投資回收期、純收入等指標度量)和無形效益(從性質和心理上衡量)。 純收入:是軟件生存周期內系統(tǒng)的累計經(jīng)濟效益和投資之差。投資回收期:是累計的經(jīng)濟效益等于最初的投資費用所需的時間。貨幣的時間價值:通常用利率表示貨幣的時間價值。設年利率為i,現(xiàn)存入P元,n年后的價值為F=P*(1+n*i)。3. 一個軟件開發(fā)成本為5萬元,壽命為3年。未來3年的每年收入預計為22000元、24000元、26620元。銀行年利率為10%。試對此項目進行成本效益分析,以決定其經(jīng)濟可行性。解:3年后,5萬的價值為50000*(1+3*10%)=65000元。 3年軟件總獲利為22000*(1+2*10%)+24000*(1+1*10%)+26620=79420元65000元,所以此項目盈利,經(jīng)濟可行。4. 系統(tǒng)的經(jīng)濟效益是因使用新的系統(tǒng)而增加的收入和使用新的系統(tǒng)可以節(jié)省的運行費用之和。三、 需求和需求分析1. 軟件需求以一種技術形式,描述了一個產(chǎn)品/系統(tǒng)應具有的功能、性能和其他性質。如功能要求、環(huán)境需求、用戶界面要求。2. 需求的性質:必要的、無歧義的、可測的、可跟蹤的、可測量的。3. 需求分為:功能需求:規(guī)約系統(tǒng)或系統(tǒng)構件必須執(zhí)行的功能的一類需求,是整個需求的主體。非功能需求:指軟件產(chǎn)品為滿足用戶業(yè)務需求而必須具有的除功能需求以外的特性,包括性能需求、外部接口需求、設計約束需求和質量屬性需求。4. 需求分析是指開發(fā)人員要準確理解用戶需求,進行細致的調查分析,將用戶非形式的需求轉化成完整的需求定義,再由需求定義轉化到相應的需求規(guī)格說明的過程??筛爬ǔ伞袄斫猓纸?,表達”六字。5. 需求分析是軟件開發(fā)工作的基礎,基本任務是準確定義新系統(tǒng)的目標,為滿足用戶的需要,回答系統(tǒng)必須做什么的問題。首要任務是確定軟件系統(tǒng)功能,定義需求并建立系統(tǒng)功能模型。6. 需求分析階段需編寫的文檔有:需求規(guī)格說明書:是軟件設計、驗收的依據(jù),雙方對軟件要做什么的共同理解,也是需求分析的最終結果。內容包括對主要數(shù)據(jù)、功能、用戶界面和運行環(huán)境、軟件性能的描述。一般伴隨可行性分析報告產(chǎn)生。初步用戶使用手冊、確認測試計劃。7. 需求分析之前要進行必要的可行性分析,研究對象是用戶要求,用戶和分析設計人員雙方確定對問題的功能需求、性能需求、環(huán)境需求、用戶界面需求。此階段建立原型的目的是確定系統(tǒng)的功能和性能需要求。8. 需求分析的難點:(1)問題的復雜性。(2)交流障礙。(3)用戶需求易變性。(4)用戶陳述的不一致性和不完備性。 解決途徑:(1)與用戶充分交流。(2)合同約束需求的變更。(3)選用適當?shù)拈_發(fā)模型。(4)用戶參與需求評審。(5)需求規(guī)格說明由用戶確認。(6)研究需求分析的方法和自動化工具(如CASE技術)。9. 各種需求分析方法都有共同適用的基本原則:(1)能表達和理解問題的數(shù)據(jù)域和功能域。(2)可把一個復雜問題按功能分解并可逐 層細化(描述軟件主要處理的數(shù)據(jù)域,并給軟件開發(fā)提供一種可轉化為數(shù)據(jù)設計、結構設計、過程設計的數(shù)據(jù)與功能表示)。(3)建模。10. 需求分析階段可用的工具有:數(shù)據(jù)流圖、判定表、數(shù)據(jù)字典等。11. 需求分析階段的工作:對問題的識別和分解、分析和綜合:(1)確定對系統(tǒng)的綜合要求。(2)分析系統(tǒng)的數(shù)據(jù)要求。(3)導出系統(tǒng)的邏輯模型。(4)修正系統(tǒng)開發(fā)計劃。導出軟件邏輯模型、制定規(guī)格說明書、需求分析評審。12. 初始需求發(fā)現(xiàn)技術:自悟、交談、觀察、小組會、提煉。13. 常用的軟件需求分析方法有:結構化分析方法(SA)、功能分解法、信息建模法、面向對象的分析方法(OOA)。四、 需求規(guī)約1. 需求規(guī)約是一個系統(tǒng)/產(chǎn)品所有需求陳述的正式文檔,它表達了一個系統(tǒng)/軟件產(chǎn)品的概念模型。2. 需求規(guī)約的性質:(1)重要性和穩(wěn)定性程度。(2)可修改的。(3)完整的。(4)一致的。3. 需求規(guī)約的三種表達風格: 非形式化的需求規(guī)約:以一種自然語言來表達。 半形式化的需求規(guī)約:以半形式化符號體系(包括術語表、標準化的表達格式等)表達。 形式化的需求規(guī)約:以一種基于良構數(shù)學概念的符號體系來編制。4. 需求規(guī)約和項目需求是兩個不同的概念。需求規(guī)約是開發(fā)組織和用戶之間一份事實上的技術合同書, 關注產(chǎn)品需求,回答“交付給客戶的產(chǎn)品/系統(tǒng)是什么”;而項目需求是客戶和開發(fā)者之間對產(chǎn)品/系統(tǒng)需求的理解,關注項目工作與管理,回答“開發(fā)組要做的是什么”。5. 需求規(guī)約的內容包括:引言、信息描述、功能描述、行為描述、檢驗標準、參考書目和附錄。6. 需求規(guī)約的作用:1)需求規(guī)約是軟件開發(fā)組織和用戶之間事實上的技術合同書,是產(chǎn)品功能及其環(huán)境的體現(xiàn)。2)對于項目的其余大多數(shù)工作,需求規(guī)約是一個管理控制點。3)對于產(chǎn)品/系統(tǒng)的設計,需求規(guī)約是一個正式的、受控的起始點。4)需求規(guī)約是創(chuàng)建產(chǎn)品驗收測試計劃和用戶指南的基礎。第三章 結構化方法一、 結構化分析方法1. 軟件系統(tǒng)/產(chǎn)品的需求工作中的三大挑戰(zhàn):問題空間的理解、人與人之間的通信、需求的變化性。2. 在軟件需求分析和設計工程的對象是數(shù)據(jù)和程序,按實施原則的處理是先數(shù)據(jù)后程序。每一種分析方法必須能夠表達和理解問題的數(shù)據(jù)域(包括數(shù)據(jù)流、數(shù)據(jù)內容、數(shù)據(jù)結構)和功能域(反映數(shù)據(jù)域的控制信息)。3. 結構化分析方法(SA)是面向數(shù)據(jù)流進行需求分析的方法。是一種建模活動,使用簡單易讀符號,根 據(jù)軟件內部數(shù)據(jù)傳遞、變更的關系,以“分解”和“抽象”為基本原則,以自頂向下逐層分解的分析策略,描繪滿足功能要求的軟件模型。4. SA分析步驟:(1)了解當前系統(tǒng)的工作流程,活得當前系統(tǒng)的物理模型。(2)抽象出當前系統(tǒng)的邏輯模型。(3)建立目標系統(tǒng)的邏輯模型。(4)做進一步的補充和優(yōu)化。5. SA方法優(yōu)點:適用于開發(fā)數(shù)據(jù)處理類型軟件的需求分析,利用半形式化工具表達需求,簡明易懂。缺點:(1)是一個靜態(tài)模型,不反映處理順序,不能控制模型,不適合描述實時控制系統(tǒng)。(2)只有和E-R圖結合才能較完整描述用戶對系統(tǒng)的需求。(3)只有和形式化方法結合才能精確描述軟件需求。(4)不適合描述人機界面系統(tǒng)的要求。(5)要借助需求分析工具,提高需求分析質量和效率。6. SA方法特征:(1)嚴格定義需求。(2)劃分開發(fā)階段。(3)制定規(guī)范文檔。(4)分析控制流程是其主要特征。7. SA是早期的軟件工程方法,主要用于數(shù)據(jù)處理方面的問題。二、 結構化方法描述工具1. 數(shù)據(jù)流圖(DFD圖),以圖形方式描繪數(shù)據(jù)在系統(tǒng)中的流動和處理過程,只反映系統(tǒng)必須完成的邏輯功能,是一種功能模型。體現(xiàn)系統(tǒng)“做什么”的功能,通過功能分解可完成對其細化,描述系統(tǒng)的分解。基本元素有:數(shù)據(jù)流:是數(shù)據(jù)的流動,具有名字和方向。加工:又稱數(shù)據(jù)處理,是數(shù)據(jù)的變換單位,接受輸入的數(shù)據(jù)內容或數(shù)據(jù)結構 ,進行處理并產(chǎn)生輸出,必須有名字。數(shù)據(jù)存儲:是數(shù)據(jù)的靜態(tài)結構,也叫文件,指暫時保存的數(shù)據(jù),是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織,必須用名詞或名詞短語命名。數(shù)據(jù)源:是數(shù)據(jù)流的起點,必須有名字; 數(shù)據(jù)潭:是數(shù)據(jù)流的歸宿地,不能作為計算機處理的成分,必須有名字,和數(shù)據(jù)源統(tǒng)稱外部實體。 “數(shù)據(jù)流”表示 “加工”表示 “數(shù)據(jù)存儲”表示 “數(shù)據(jù)源”和“數(shù)據(jù)潭”表示使用這些基本元素應注意的問題:數(shù)據(jù)流起到連接其它實體的作用;在應用中,數(shù)據(jù)流和數(shù)據(jù)存儲一般需要給出標識,但對流入或流出數(shù)據(jù)存儲的數(shù)據(jù)流,在語義比較清晰的情況下可省略;加工之間可以有多個數(shù)據(jù)流,這些數(shù)據(jù)流可以沒有直接關系,數(shù)據(jù)流圖也不表明他們的先后次序。2. 數(shù)據(jù)字典(DD)是用來定義數(shù)據(jù)流圖各個成分的具體含義,以準確、無二義性的說明方式為系統(tǒng)的分 析、設計、維護提供有關因素的一致的定義和詳細的描述。 建立形式有:手工建立、利用計算機輔助建立并維護。它和數(shù)據(jù)流圖共同構成系統(tǒng)的邏輯模型,是需求說明書重要組成部分。 四類基本條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲、基本加工條目。 數(shù)據(jù)字典定義數(shù)據(jù)流或數(shù)據(jù)存儲組成時使用的符號: = 被定義為 + 與 |或 重復 mn重復 ()可選 “”數(shù)據(jù)元素 .連接符3. 加工邏輯是只指對數(shù)據(jù)流圖中的數(shù)據(jù)處理進行邏輯上的說明,詳細描述數(shù)據(jù)流圖中不能再分解的每一個加工,采用三種工具:結構化語言:介于自然語言和形式化語言間的一種半形式語言。非為外層(采用順序、選擇、重復三種基本結構,描述控制結構)和內層。判定表:構成如下:條件類別條件組合操作操作執(zhí)行判定樹:是判定表的變形,更直觀易懂。與判定表主要用于描述存在多個條件復雜組合的判斷問題。4. 另外還有結構化英語等工具。三、 數(shù)據(jù)流圖的繪制1. 繪圖方法有:自頂向下、分層繪制、初步求精等。2. 步驟:(1)先畫出系統(tǒng)的輸入輸出,即先畫頂層數(shù)據(jù)流圖。頂層數(shù)據(jù)流圖包括一個加工以表示被開發(fā) 的系統(tǒng)。 (2)畫系統(tǒng)內部,即畫下層數(shù)據(jù)流圖。將層號從0號開始編號,采用自頂向下、由外向內德原則。畫更下層數(shù)據(jù)流圖時,則分解上層圖中的加工,一般沿輸入流方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設置一個加工,一直進行到輸出流。如果加工的內部還有數(shù)據(jù)流則繼續(xù)分解,直到每個加工足夠簡單,不能分解為止。不能分解的加工叫基本加工。3. 注意問題:(1)命名:不能使用缺乏具體含義的名字,加工名應能反映處理的功能。 (2)畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。一般不畫物質流。 (3)每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工的來源和結果。 (4)編號:某個加工分解成一張數(shù)據(jù)流圖時,上層圖為父圖,下層圖為子圖。子圖和其上的所有加工應編號,子圖編號和父圖編號相對應。 (5)父圖和子圖的平衡。子圖的輸入輸出數(shù)據(jù)流同父圖加工的輸入輸出數(shù)據(jù)流必須一致。 (6)當局部數(shù)據(jù)存儲作為某些加工的數(shù)據(jù)接口或某些加工特定的輸入輸出時,就把它畫下來,有助于實現(xiàn)信息隱蔽性。 (7)提高數(shù)據(jù)流圖的易理解性。四、 數(shù)據(jù)流圖的基本類型1 數(shù)據(jù)流圖一般分為變換型數(shù)據(jù)流圖和事務型數(shù)據(jù)流圖。兩者的區(qū)別在于前者具有明顯變換特征的數(shù)據(jù)流圖,后者適用于具明顯事物特征的數(shù)據(jù)流圖。2. 變換型數(shù)據(jù)流圖是一個順序結構,由輸入、變換、輸出三部分組成。工作過程分為:取得數(shù)據(jù)、變換數(shù)據(jù)、給出數(shù)據(jù)。事務型數(shù)據(jù)流圖是將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并根據(jù)輸入的值選擇其中一個路徑來執(zhí)行。3. 變換型數(shù)據(jù)流圖設計步驟:(1)確定DFD的變換中心、邏輯輸入和邏輯輸出。(2)設計軟件結構的頂層和第一層:變換結構。(3)設計中、下層模塊。(4)設計的優(yōu)化。4. 事務型數(shù)據(jù)流圖設計步驟:(1)確定DFD的事務中心和加工路徑。(2)設計軟件結構的頂層和第一層:事務結構。(3)設計中、下層模塊、優(yōu)化等工作,與變換型流程圖設計一致。五、 結構化設計和總體設計1. 軟件設計是應用各種各樣的技術和原理,定義一個系統(tǒng)或部件的框架、組成、接口或其他特征的過程或“該過程的結果”,是將軟件需求變換成軟件表示的過程。2. 模塊在程序中是數(shù)據(jù)說明、可執(zhí)行語句等程序對象的集合,或是單獨命名和編址的元素,在軟件體系結構中,模塊是可組合、分解和更換的單元。基本屬性有接口、功能、邏輯(反映內部特性)、狀態(tài)。5. 軟件設計基本原理是:抽象:即抽出事物本質的共同特性而暫不考慮細節(jié)和其它因素,能確定組成軟件的過程實體。模塊化:解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分為若干模塊的過程。信息隱藏:在設計和確定模塊時,使一個模塊內包含的信息,對于不需要這些信息的其他模塊來說,是不能訪問的。定義和實施對模塊過程細節(jié)和局部數(shù)據(jù)結構的存取限制。模塊獨立性(最主要的原理):每個模塊指完成系統(tǒng)要求的獨立的子功能,且與其他模塊的聯(lián)系最少且接口簡單。4. 軟件設計基本任務: 軟件系統(tǒng)結構設計、數(shù)據(jù)結構和數(shù)據(jù)庫設計、網(wǎng)絡系統(tǒng)設計、軟件總體設計文檔、評審。5. 結構化設計(SD)又叫面向數(shù)據(jù)流的設計,是以需求分析階段產(chǎn)生的數(shù)據(jù)流圖為基礎,按一定步驟映射成軟件結構。6. 結構化設計分為總體設計和詳細設計,它們是全局和局部的關系。主要任務是在需求分析的基礎上,定義滿足需求要的結構,即針對給定的問題,給出該問題的軟件解決方案,確定“怎么做”的問題。7. 總體設計階段的工具:模塊結構圖、層次圖、HIPO圖。8. 總體設計基本步驟:先將系統(tǒng)DFD圖轉化成初始的模塊結構圖,再基于“高內聚低耦合”軟件設計原則,通過模塊化,將初始的模塊結構圖轉化為最終的、可供詳細設計使用的模塊結構圖(MSD)。9. 根據(jù)數(shù)據(jù)流的特性,將數(shù)據(jù)流圖分為變換型數(shù)據(jù)流圖和事務型數(shù)據(jù)流圖。 變換流指DFD具有明顯的輸入、變換、輸出界面。事務流指DFD中輸入流被分離成許多數(shù)據(jù)流,形成許多加工路徑,并根據(jù)輸入值選擇其中一條路徑來執(zhí)行。10. 模塊結構圖是軟件系統(tǒng)的模塊層次結構,反映整個系統(tǒng)的功能實現(xiàn),用網(wǎng)狀或樹狀結構的圖形表示。形態(tài)特征:深度(模塊的層數(shù))、寬度(一層中最大的模塊個數(shù))、扇入(一個模塊直接上屬模塊的個數(shù))、扇出(一個模塊直接調用下屬模塊的個數(shù))。畫圖注意事項:同一名字的模塊在結構圖中只出現(xiàn)一次;調用關系只能從上到下;模塊調用次序一般從左到右。11. 模塊的控制域指這個模塊本身以及所有直接或間接從屬它的模塊的集合。模塊的作用域是受該模塊內一個判定所影響的所有模塊的集合。當一個模塊的作用域不在其控制域內,或把該模塊移到上一層次,或把在作用域內但不在控制域內的模塊移到控制域內,盡量使模塊的作用域是其控制域的子集。六、 耦合性和內聚性1. 耦合性也叫塊件關系,根據(jù)模塊外部特征提出的,是對軟件系統(tǒng)結構中各模塊間相互聯(lián)系緊密程度的一種度量。按耦合程度由低到高分為:l 無直接耦合:兩個模塊間無直接關系,分別從屬不同模塊的控制和調用,不傳遞任何信息。l 數(shù)據(jù)耦合:兩個模塊間有調用關系,傳遞簡單數(shù)據(jù)值,相當于高級語言的值傳遞。l 標記耦合:兩個模塊間傳遞數(shù)據(jù)結構。l 控制耦合:傳遞控制變量,如開關、標志。l 公共耦合:傳遞在公共數(shù)據(jù)環(huán)境中的數(shù)據(jù)。l 內容耦合:傳遞的是一個模塊的內部數(shù)據(jù),往往出現(xiàn)在匯編語言中。2. 影響模塊間耦合程度的最主要因素是模塊間傳遞信息的復雜性,另外還受接口的復雜性和調用方式的影響。模塊間耦合性越強,聯(lián)系越緊密,獨立性越差。提高模塊間獨立性的措施有:* 在耦合方式上降低模塊間接口的復雜性:包括模塊的接口方式、接口信息和參數(shù)個數(shù)。* 在傳遞信息類型上盡量使用數(shù)據(jù)耦合,避免控制耦合,慎用或有控制地使用公共耦合。3. 內聚性又叫塊內聯(lián)系,根據(jù)模塊內部特征提出的指模塊功能強度的度量,即一個模塊內部各個元素彼此結合的緊密程度的度量。按內聚程度由低到高分為:l 偶然內聚:一個模塊內的各處理元素間沒有任何聯(lián)系。l 邏輯內聚:模塊內執(zhí)行的幾個邏輯上相似的功能,通過參數(shù)確定該模塊完成那一個功能。l 時間內聚:需要同時執(zhí)行的動作組合在一起形成的模型。l 通信內聚:都要在同一數(shù)據(jù)結構上操作,緊密相關于同一數(shù)據(jù)結構。l 順序內聚:緊密相關于同一功能,且必須按順序完成,某成分的輸入是另一成分的輸出。l 功能內聚:共同完成同一功能,缺一不可,模塊不可再分割。3. 影響內聚程度的最主要因素是模塊內各成分之間相關于同一功能的緊密程度。模塊內聚性越高,獨立性越強,有利于軟件重用。七、 詳細設計1. 詳細設計主要確定每個模塊具體執(zhí)行過程和內部特性,也稱過程設計。結果是基本決定了最終程序代碼的質量。2. 結構圖(SC圖)是總體設計和詳細設計銜接的圖形工具,主要內容有:模塊、模塊的控制關系、模塊的信息傳遞。3. 詳細設計基本任務:為每個模塊進行詳細的算法設計;為模塊內的數(shù)據(jù)結構進行設計;對數(shù)據(jù)庫進行物理設計;其他設計;編寫詳細設計說明書(內容包括引言、軟件結構、模塊設計說明);評審(針對處理過程的算法和數(shù)據(jù)庫的物理結構)。4. 詳細設計目標是邏輯上正確實現(xiàn)每個模塊的功能,還應使設計出的處理過程通過結構化程序設計清晰易讀,指導開發(fā)出易于理解、易于驗證的程序。5. 結構化程序設計是面向數(shù)據(jù)流的軟件總體設計方法,主要強調的是程序的易讀性?;疽c有:(1)采用自頂向下,逐步求精的程序設計方法。(2)使用三種基本控制結構(共同點是只有單入口和單出口)構造程序。(3)采用工作方式為主程序員組的組織形式,突出了主程序員的領導(包括一個住程序員、后備程序員、程序管理員,一些專家和其他技術人員)。6. 詳細設計的工具:圖形(程序流程圖、盒圖N-S圖、PAD圖、IPO圖)、表格(判定表)、語言(類程序設計語言PDL,也叫偽碼)。7. 流程圖,是描述程序邏輯結構的工具。優(yōu)點是:直觀清晰、易使用。缺點是:(1)可隨心所欲畫出控制流程的流向,易造成非結構化的程序結構。(2)不易反映逐步求精過程,往往反映最后結果。(3)不易表示數(shù)據(jù)結構。(4)對大型軟件過于瑣碎,不易閱讀和修改。結構化流程圖由三種基本控制結構順序組合和完整嵌套而成,不能相互交叉,克服流程圖最大缺陷。8. 問題分析圖(PAD圖),描述的是算法,是由左往右展開的二維樹形結構,控制流程為自上而下,從左到右執(zhí)行。優(yōu)點是:(1)清晰反映程序層次結構(圖中的豎線為程序的層次線)。(2)支持逐步求精設計方法。(3)易讀易寫,使用方便。(4)支持結構化程序設計原理。(5)可自動生成程序,由軟件工具自動生成相應源代碼。9. 類程序設計語言PDL,是描述模塊算法設計和處理細節(jié)的語言。分為內外兩層,外層語法符合一般程序設計語言常用語法規(guī)則,內層語法用簡單句子、短語、通用數(shù)學符號來描述程序應執(zhí)行的功能??梢员硎镜某绦蚪Y構有:順序結構(采用自然語言描述)、選擇結構、循環(huán)結構、出口結構、模塊定義和調用、數(shù)據(jù)定義、輸入/輸出。特點:(1)所有關鍵字有固定語法,以便提供結構化控制結構、數(shù)據(jù)說明和模塊特征。(2)描述處理過程的說明性語言沒有嚴格語法。(3)具有簡單或復雜的數(shù)據(jù)說明機制。(4)具有模塊定義和調用機制。 優(yōu)點:(1)總體結構和一般程序完全相同。(2)提供的機制比圖形全面,為保證詳細設計與編碼的質量創(chuàng)造有利條件。(3)可作為注釋嵌入源程序中一起作為程序的文檔,并可同高級程序設計語言一樣進行編輯、修改,有利于軟件維護。(4)可自動生成程序代碼,提高軟件生產(chǎn)率。八、 Jackson方法1. Jackson方法是以Jackson結構圖(上下層間是組成關系)為描述工具,用三種基本結構來表示,是面向數(shù)據(jù)結構的設計方法。不僅可以表示程序結構,還可表示數(shù)據(jù)結構。主要分為:l JSP:用于開發(fā)規(guī)模較小的數(shù)據(jù)處理系統(tǒng)的設計。定義一組以數(shù)據(jù)結構為指導的映射過程,根據(jù) 輸入、輸出的數(shù)據(jù)結構,按一定的規(guī)則映射成軟件的過程描述,即程序結構。適用于詳細設計階段。l JSD:主要以活動事件為中心,通過由一串活動順序組合構成進程,建立系統(tǒng)模型,最后實現(xiàn)該 模型。2. Jackson特點:能對結構進行自頂向下的分解,可表示層次結構;結構易讀,形象直觀;既能表示數(shù)據(jù)結構也能表示程序結構等組成關系。3. Jackson設計步驟:(1)分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結構,并用Jackson結構圖表示這些數(shù)據(jù)結構。(2)找出輸入數(shù)據(jù)結構和輸出結構中有對應關系的數(shù)據(jù)單元(對應關系指數(shù)據(jù)單元在數(shù)據(jù)內容、數(shù)量、順序上有直接的因果關系,重復的次序和次數(shù)都相同才有對應關系)。(3)按一定的規(guī)則由輸入、輸出的數(shù)據(jù)結構導出程序結構。(4)列出基本操作和條件,并把它們分配到程序結構圖的適當位置。(5)用偽碼寫出程序。 4. 在Jackson方法中,如果輸入數(shù)據(jù)和輸出數(shù)據(jù)結構之間找不到對應關系,稱為結構沖突。解決方法:引入中間數(shù)據(jù)結構或中間文件,將沖突部分分隔開來,建立多個程序結構,再利用中間文件將它們聯(lián)系起來,構成一個系統(tǒng)的整體。第四章 面向對象方法一、 面向對象方法學1. 傳統(tǒng)方法學的缺點:生產(chǎn)效率低、不能滿足用戶需要、軟件復用程度低、軟件仍然很難維護。產(chǎn)生問題的原因:結構化技術本身問題、預先定義的需求可能會過時、語言鴻溝、系統(tǒng)需求的模糊性。2. 面向對象的基本概念: 對象:是問題域或實現(xiàn)域中某些事物的一個抽象,反映該事物在系統(tǒng)中需要保存的信息和發(fā)揮作用,是一組屬性和有權對這些屬性進行操作的一組服務的封裝體。它是封裝的基本單位,也是類的實例化,具有很強的表達和描述能力。 類:是具有相同屬性和服務的一組對象的集合,為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內部包括屬性和服務。是對象的狀態(tài)的抽象,用數(shù)據(jù)結構來描述類的屬性。 繼承:特殊類的對象擁有其一般類的全部屬性和服務,稱作特殊類對一般類的繼承。是子類自動共享父類的屬性和操作的機制。 封裝:把對象的屬性服務結合成一個獨立的系統(tǒng)單位,并盡可能隱蔽對象的內部細節(jié)。 消息:是對象間進行通信的構造。如通過執(zhí)行對象的操作改變對象的屬性。 連接:實例連接(反映對象間的靜態(tài)聯(lián)系)、消息連接(描述對象間的動態(tài)聯(lián)系)描述對象間的關系。 多態(tài)性:指允許不同類的對象對同一消息作出響應。多態(tài)性引用具有動態(tài)類型(程序執(zhí)行期間在實例間進行變化)和靜態(tài)類型(在程序上下文中由實體說明決定)。3. 面向對象程序設計語言和其他設計語言的主要差別是它具有繼承性。面向對象開發(fā)方法子概念和表示上的一致性保證了分析和設計的平滑過渡。一個面向對象系統(tǒng)的體系結構通過它的成分對象和對象間的關系確定,具有設計穩(wěn)定的優(yōu)點。4. 面向對象的模型分為: 對象模型:描述系統(tǒng)數(shù)據(jù)結構,是表示靜態(tài)的、結構化的系統(tǒng)的“數(shù)據(jù)”性質。描述工具是對象圖。是核心模型。建立模型時用到的符號:表示類的符號、表示對象的符號、表示繼承關系的符號、表示類和對象間其他關系的符號。對象建模過程:確定類、準備數(shù)據(jù)字典、確定關聯(lián)、確定屬性、使用繼承來細化類、完善對象模型。 動態(tài)模型:描述系統(tǒng)控制結構,是表示瞬時的、行為化的系統(tǒng)的“控制”性質,把腳本表示成事件跟蹤表,其中對象為表中的列。使用狀態(tài)圖(描述類中某個對象的行為,反映了狀態(tài)和事件關系)做為描述工具,描述的系統(tǒng)屬性是觸發(fā)事件、事件序列、狀態(tài)、事件和狀態(tài)的組織。表示了對象的相互行為。 動態(tài)建模過程:準備腳本、確定事件、準備事件跟蹤表、構造狀態(tài)圖。 功能模型:描述系統(tǒng)功能,由多張數(shù)據(jù)流圖按層次結構組成,指出發(fā)生了什么。說明了對象模型中操作和約束的含義、動態(tài)模型中動作的意義。 功能建模過程:確定輸入值和輸出值、建立數(shù)據(jù)流圖。5. 在面向對象方法中,信息隱蔽通過對象的封裝性來實現(xiàn)。類結構分離了接口和實現(xiàn),從而支持了信息隱蔽。6. 面向對象有三個基本要素:抽象、封裝性(信息隱蔽)、共享性。面向對象技術在三個級別上促進了共享:同一個類中的共享(如同一類中有相同的數(shù)據(jù)結構)、在同一個應用中的共享、在不同應用中的共享(如庫類這種機制)。7. 在確定屬性時,所有修飾性名詞詞組是侯選定屬性。在確定類時,所有名詞是候選的類。常用動詞或動詞詞組來表示關聯(lián)。與時間聯(lián)系在一起的瞬時操作是動作,有時間間隔的操作是活動。8. 在類的層次結構中,上層稱作父類或超類,下層成為子類。9. 面向對象的主要特征:對象惟一性(對象本身惟一的標識,通過這種標識可找到相應對象)、分類性(具有一致的數(shù)據(jù)結構和行為的對象抽象成類)、繼承性、多態(tài)性。二、 面向對象分析1. 面向對象分析就是抽取和整理用戶需求并建立問題域精確模型的過程。目的是對客觀世界的系統(tǒng)進行建模。2. 面向對象分析中的定義結構:一般-特殊結構:也稱分類結構,是“或”、“is a”的關系。整體-部分結構:也稱組裝結構,是“與”、“has a”的關系。3. 面向對象分析模型的作用:明確問題要求,為用戶和開發(fā)人員提供明確需求、為用戶和開發(fā)人員提供一個協(xié)商基礎、作為后繼的設計和實現(xiàn)的框架。三、 面向對象設計1. 重用也叫再用或復用,指同一事物不作修改或稍加改動就可多次重復使用。 軟件復用的范圍:數(shù)據(jù)復用、模塊復用、結構復用、設計復用、規(guī)格說明復用。 軟件復用技術:合成技術、生成技術、面向對象的軟件復用技術。2. 面向對象設計分為:系統(tǒng)設計:內容包括:系統(tǒng)分解、確定并發(fā)性、處理及其任務分配、數(shù)據(jù)存儲管理、全局資源的處理、選擇軟件控制機制、人機交互接口設計。對象設計:內容包括:獲得操作、確定操作的目標對象、算法設計、優(yōu)化設計、控制的實現(xiàn)、調整繼承、關聯(lián)的設計。3. 面向對象設計準則:模塊化、抽象、信息隱蔽、低耦合、高內聚。4. 面向對象設計中的三種內聚:操作內聚、類內聚、一般-具體內聚。5. 面向對象的開發(fā)方法:Booch方法(原是面向Ada語言的,并處于面向對象開發(fā)方法的奠基性地位)、Coad方法、OMT方法、OOSE方法。6. 面向程序設計中提高重用性的準則:(1)提高方法的內聚。(2)減小方法的規(guī)模。(3)保持方法的一致性。(4)把策略與實現(xiàn)分開。(5)全面覆蓋。(6)盡量不使用全局信息。7. 面向程序設計中提高擴充性的準則:(1)封裝實現(xiàn)策略。(2)不要用一個方法遍歷多條關聯(lián)鏈。(3)避免使用多分支語句。(4)精心確定公有方法。8. 面向程序設計中提高健壯性的準則:(1)預防用戶的操作錯誤。(2)檢查參數(shù)的合法性。(3)不要預先確定限制條件。(4)先測試后優(yōu)化。9. 保持設計結果清晰易讀的主要因素:(1)用詞一致。(2)使用已有的協(xié)議。(3)減少消息模式的數(shù)目。(4)避免模糊的定義。10. 面向對象軟件的測試分為算法層、類層、模塊層、系統(tǒng)層四個層次進行。11. 面向對象設計的啟發(fā)規(guī)則:(1)設計結果清晰易懂。(2)一般-具體結構的深度應適當。(3)設計簡單的類。(4)使用簡單協(xié)議。(5)使用簡單操作。(6)把設計變動減到最小。 設計簡單的類應注意:(1)避免包含過多的屬性。(2)有明確定義。(3)盡量簡化對象間的合作關系。(4)不要提供太多操作。 四、 形式化方法1. 形式化規(guī)約的目標是無二義性、一致性和完整性。形式化規(guī)約語言由語法、語義、一組關系組成。集合論是維也納開發(fā)方法等形式化方法的基礎。語義指出語言如何表示系統(tǒng)需求。經(jīng)典的語義定義方法有:指稱語義、代數(shù)語義、操作語義方法。2. 有限狀態(tài)機是實時系統(tǒng)設計中的一種數(shù)學模型,由一個有限的狀態(tài)集合、一個有限的輸入集合、一個變遷函數(shù)組成。優(yōu)點:簡單易用,狀態(tài)間的關系能直觀看到。缺點:任何時刻系統(tǒng)只能有一個狀態(tài),無法表示并發(fā)性,不能描述異步并發(fā)系統(tǒng)。3. Petri網(wǎng)是在軟件分析中,用一種系統(tǒng)的數(shù)學和圖形的描述和分析的方法。使用圖形工具,可以表示系統(tǒng)結構和動態(tài)行為方面的信息。4. Petri網(wǎng)理論認為,任何系統(tǒng)是由表示狀態(tài)的元素和表示狀態(tài)變化的元素組成。用位置表示狀態(tài)的元素,符號為“”。用轉移表示狀態(tài)變化的元素,符號為“”或 “|”。5. Petri網(wǎng)的行為特征分析方法有可覆蓋性樹、矩陣方程求解、分層或簡化三類。Petri網(wǎng)到程序結構的轉換方法:流程圖方法、編程語言的方法、面向對象的程序設計方法。6. 凈室是一種以合理的成本開發(fā)高質量軟件的基于理論、面向工作組的方法。凈室過程強調規(guī)約和設計上的嚴格性,凈室軟件工程使用盒結構規(guī)約的方法來遵從操作分析原則。7. 凈室方法未廣泛使用的原因:(1)凈室方法太理論、太數(shù)學化,一直難以在真實的軟件開發(fā)中使用。(2)不需要進行單元測試,與大多數(shù)軟件開發(fā)方式背離。(3)軟件開發(fā)產(chǎn)業(yè)的成熟度。8. 客戶/服務器模式的系統(tǒng)結構中的服務器:文件服務器、數(shù)據(jù)庫服務器、事務服務器、組件服務器。五、 面向對象方法-UML1. UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言,統(tǒng)一了Booch方法、OMT方法、OOSE方法的表示方法,融入了軟件工程領域的新思想、新方法和新技術。它的作用域不限于支持面向對象的分析與設計,還支持從需求分析開始的軟件開發(fā)全過程。2. 為表達客觀事物之間的關系,UML給出了以下基本術語: 關聯(lián):是類目之間的一種結構關系,是對一組具有相同結構、相同鏈的描述。其中鏈是對象之間具有特定語義關系的抽象。 泛化:是一般性類目(或稱超類或父類)和它的較為特殊型類目(稱為子類)之間的一種關系。 細化:是類目間的語義關系,其中一個類目規(guī)約了保證另一個類目執(zhí)行的契約。依賴:是一種使用關系,用于描述一個類目使用另一類目的信息和服務。它們的關系:關聯(lián)、泛化和細化都是一類特定的依賴。3. 為表達客觀事物,UML給出的基本術語:類與對象、接口、協(xié)作、用況、主動類、構件、制品、節(jié)點。4. 聚合是滿足“一個類是另一個類的一部分”這一性質的關聯(lián),是關聯(lián)的一種特殊形式。5. 對象由對象名、對象屬性和對象操作組成,用具有3個欄目的矩形表示,上欄目表示對象名(加下劃線)、中間欄目表示屬性、下欄目表示操作。6. 類圖的構成成分:類、接口、關聯(lián)、泛化和依賴關系等。7. 狀態(tài)圖的構成成分:狀態(tài)、轉移及其相關的事件和動作、消息等。8. 順序圖的構成成分:參與交互的對象、基本的交互方式(同步和異步)以及消息等。六、 面向對象方法-RUP1. RUP的特點:(1)以用況為驅動。(2)以體系結構為中心。(3)迭代、增量式開發(fā)。第五章 軟件測試一、 軟件質量與質量保證1. 軟件質量定義即3個一致性:與所確定的功能和性能需求、與所成文的開發(fā)標準、與所有專業(yè)開發(fā)的軟件所期望的隱含特性的一致性。2 影響軟件質量的因素:可直接度量因素和只能間接度量的因素。3. 軟件質量保證是指確定、達到、維護所需的軟件質量而進行的所有有計劃、有系統(tǒng)的管理活動。從產(chǎn)品計劃和設計開始(必須加以保證),直到投入使用和售后服務的軟件生存期的每一階段的每一步驟。其工作重點放在過程管理上,對制造的每一道工序進行質量控制。 為提高軟件質量和效率,主要任務:力爭不重復勞動、掌握開發(fā)新軟件方法、用戶要求定義、組織外部力量協(xié)助排除無效勞動、發(fā)揮每個開發(fā)者的能力、提高軟件開發(fā)的工程能力、提高計劃和管理質量。4. 質量保證策略發(fā)展的三個時期:以檢測為重、以過程管理為重、以新產(chǎn)品開發(fā)為重。5. 質量度量模型:McCall質量度量模型、ISO質量度量模型(分為質量特征層、質量子特征層、度量層)。 McCall質量度量模型有11個特性:面向軟件產(chǎn)品操作的特性有:正確性、可靠性、效率、可用性。 面向軟件產(chǎn)品修改的特性有:可維護性、可測量性、適應性。 面向軟件產(chǎn)品適應的特性有:可移植性、可重用性、可互操作性。 其中,正確性是指軟件滿足設計規(guī)格說明及用戶預期目標的程度??煽啃允侵杠浖丛O計要求,在規(guī)定時間和條件下不出故障,持續(xù)運行的時間。完整性是指對非授權人訪問軟件或數(shù)據(jù)行為的控制程度??捎眯允侵赣脩羰煜?、使用及準備輸入和解釋輸出所需工作量的大小。6. 度量軟件復雜度使用代碼行度量法和基于程序控制流的McCabe度量法。McCabe

溫馨提示

  • 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

提交評論