軟件工程基礎知識點整理_第1頁
軟件工程基礎知識點整理_第2頁
軟件工程基礎知識點整理_第3頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程基礎知識點整理朱染晅土建 1109070211 112一 . 軟件工程基本概念:1. 軟件定義:是計算機系統(tǒng)中與硬件相互依存的另一部分, 是包括程序、數(shù)據(jù)以及相關文檔的完整集合。(1)程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設 計語言描述的、適合計算機執(zhí)行的指令(語句)序列。(2)數(shù)據(jù)是使程序能夠正常操作信息的數(shù)據(jù)結構。(3)文檔是與程序開發(fā)、維護和使用有關的圖文資料。注:國標(GB計算機軟件的定義:與計算機系統(tǒng)的操作相關的計算機程序、規(guī)程、規(guī)則以及可能有的文件、學資學習網(wǎng) 提供考研資料 文檔及數(shù)據(jù)2軟件特點:(1)軟件是一種邏輯實體,而不是物理實體,具有抽象性 是計算機的無形部分

2、;(2)軟件的生產與硬件不同,它沒有明顯的制作過程;(3)軟件在運行、使用期間不存在磨損、老化問題;(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題;(5)軟件復雜性高,成本昂貴;(6)軟件開發(fā)涉及諸多的社會因素軟件分類: 3.按照功能可以分為:應用軟件、系統(tǒng)軟件、支撐軟件(或 工具軟件)( 1)應用軟件是為解決特定領域的應用而開發(fā)的軟件。如:教務管理系統(tǒng)、財務管理系統(tǒng)等。(2)系統(tǒng)軟件是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件。如:操作系統(tǒng)、 數(shù)據(jù)庫管理系統(tǒng)等。(3)支撐軟件是介于系統(tǒng)軟件和應用軟件之間,協(xié)助用戶 開發(fā)軟件

3、的工具軟件。比如:編碼工具軟件、測試工具軟 件。4. 軟件危機:軟件危機是指在軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。軟件危機主要體現(xiàn)在以下幾個方面: 軟件開發(fā)的實際成本和進度估計不準確 開發(fā)出來的軟件常常不能使用戶滿意 軟件產品的質量不高,存在漏洞,需要經常打補丁 大量已有的軟件難以維護 軟件缺少有關的文檔資料 開發(fā)和維護成本不斷提高,直接威脅計算機應用的擴大 軟件生產技術進步緩慢,跟不上硬件的發(fā)展和人們需求增長5. 軟件工程的定義和目的:1)定義:軟件工程是指應用計算機科學、數(shù)學及管理科學等原理,以工程化的原則和方法來開發(fā)與維護軟件的學科。(2) 目的:研究軟件工程的主要目的就是在規(guī)

4、定的時間、規(guī) 定的開發(fā)費用內開發(fā)出滿足用戶需求的高質量的軟件系統(tǒng)( 高質量是指錯誤率低、好用、易用、可移植、易維護等)(3) 軟件工程的三個要素:方法、工具和過程。 方法:完成軟件工程項目的技術手段; 工具:支持軟件的開發(fā)、管理、文檔生成; 過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。4)核心思想:把軟件產品看作是一個工程產品來處理二 . 軟件工程概述:1. 軟件生命周期:(1)定義:將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。( 2)軟件生命周期一般劃分為定義、 開發(fā)和維護 3 個階段:定義階段:可行性研究、需求分析 2 個階段;個階 4 開發(fā)階段: 概要設計、 詳細

5、設計、 編碼實現(xiàn)和測試 段;維護階段:使用、維護、退役階段。詳解: a. 軟件定義階段:包括制定計劃和需求分析。制定計劃:確定總目標;可行性研究;探討解決方案;制 定開發(fā)計劃。需求分析:對待開發(fā)軟件提出的需求進行分析并給出詳細 的定義。需求分析方法有: 1)結構化需求分析方法; 2)面向對象 的分析方法。需求分析的任務就是導出目標系統(tǒng)的邏輯模型,解決“做 什么”的問題。需求分析一般分為需求獲取、需求分析、編寫需求規(guī)格說 明書和需求評審四個步驟進行。b. 軟件開發(fā)階段:軟件設計:分為概要設計和詳細設計兩個部分。軟件實現(xiàn):把軟件設計轉換成計算機可以接受的程序代碼。軟件測試:在設計測試用例的基礎上檢

6、驗軟件的各個組成部分。c. 軟件運行維護階段:軟件投入運行,并在使用中不斷地維護,進行必要的擴充和刪改。注:軟件生命周期中所花費最多的階段是軟件運行維護階段。2. 軟件工程原則:抽象、信息隱蔽、模塊化、局部化、確 定性、一致性、完備性和可驗證性。3. 軟件工具與軟件開發(fā)環(huán)境:1)軟件工具就是幫助開發(fā)軟件的軟件。它們對提高軟件生產率,促進軟件生產的自動化都有重要的作用。(2)軟件開發(fā)環(huán)境 ( 或稱軟件工程環(huán)境 ) 是全面支持軟件開 發(fā)全過程的軟件工具的集合,這些軟件工具按照一定的方 法和模式組合起來,共同支持軟件生命周期內的各個階段 和各項任務的完成。三. 軟件設計基本概念:軟件工程過程軟件設計

7、 目的:確定軟件的總體結構、數(shù)據(jù)結構、用戶界面和算法 細節(jié)任務:將需求階段產生的軟件需求說明轉換為用適當手段表示的軟件設計文檔軟件設計分為總體設計和詳細設計四軟件設計的基本原理:1總體設計目的:要解決的問題是“怎樣實現(xiàn)目標系統(tǒng)”任務:確定軟件的總體結構,進行模塊劃分,確定每個模 塊的功能、接口及模塊之間的調用關系,并對全局數(shù)據(jù)結 構進行設計,同時產生概要設計說明書2詳細設計目的:要解決的問題是“應該怎樣具體實現(xiàn)目標系統(tǒng)”任務:在概要設計的基礎上,設計每個模塊實現(xiàn)的細節(jié)及 對局部數(shù)據(jù)進行設計 ( 包括模塊的數(shù)據(jù)結構和所需的算法 ), 同時產生詳細設計說明書3軟件編碼目的:產生能在計算機上執(zhí)行的程

8、序 任務:根據(jù)系統(tǒng)的要求和開發(fā)環(huán)境,選用合適的程序設計 語言,把詳細設計的結果翻譯成用該程序設計語言編寫的 程序代碼 (源程序 )4軟件測試 軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程 目的和任務:通過在計算機上執(zhí)行程序來盡可能多地發(fā)現(xiàn)軟件產品中的錯誤和缺陷,并改正程序中的錯誤,以保證 程序的可靠運行。5軟件維護軟件維護階段是長期的過程,因為,經過測試的軟件還可 能有錯,用戶的要求還會發(fā)生變化,軟件運行的環(huán)境也可能變化等等。因此,交付使用的軟件仍然需要繼續(xù)排錯、 修改和擴充,這就是軟件維護。注:(1)軟件維護的目的是滿足用戶對已開發(fā)產品的性能 與運行環(huán)境不斷提高的需要,進而達到延長軟件的壽

9、命 軟件維護就是在軟件交付使用之后,為了改正錯誤或滿足 新的需要而修改軟件的過程。(2)軟件維護的類型有如下幾種:1)改正性維護:診斷和改進錯誤的過程(。2)適應性維護:為與變化的環(huán)境適當?shù)嘏浜隙M行的修改 軟件的活動。3)完善性維護:為了滿足用戶提出的增加新功能或修改已 有功能的建議而進行維護。4)預防性維護:為了改進未來的可維護性和可靠性。 軟件開發(fā)時期要完成設計和實現(xiàn)兩大任務,其中設計任務 用需求分析和軟件設計兩個階段完成,實現(xiàn)任務用編碼和 測試兩個階段完成。開發(fā)任務完成的好與壞,關系到軟件產品的質量,完成開發(fā)任務的關鍵是選擇好的軟件開發(fā)方法。目前,軟件開發(fā)方法主要有結構化開發(fā)方法和面向

10、對象開 發(fā)方法。五結構化分析方法1.結構化分析(簡稱SA)方法是面向數(shù)據(jù)流進行需求分析的方法。該方法使用簡單易讀的符號,運用抽象的概念模型,根據(jù)軟件內部數(shù)據(jù)傳遞、變換的關系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型2結構化分析方法的常用工具:數(shù)據(jù)流圖、數(shù)據(jù)字典、結構化語言、判定樹、判定表3SA 的基本步驟如下: 自頂向下對系統(tǒng)進行功能分解,畫出分層的數(shù)據(jù)流圖 由后向前定義系統(tǒng)的數(shù)據(jù)和加工,編制數(shù)據(jù)字典和加工說明 寫出需求規(guī)格說明書 (SRS)4數(shù)據(jù)流圖(1)數(shù)據(jù)流圖是以圖形的方式描繪數(shù)據(jù)在軟件系統(tǒng)中流動 和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能, 所以它是一種功能模型。(2)數(shù)據(jù)

11、流圖由數(shù)據(jù)流、加工 (又稱數(shù)據(jù)處理 )、數(shù)據(jù)存儲( 又稱文件 ) 、數(shù)據(jù)源點或終點四種基本成分組成。(3)數(shù)據(jù)流圖(簡稱DFD)圖形元素: 數(shù)據(jù)流:是數(shù)據(jù)在系統(tǒng)內傳播的路徑。使用箭頭代表數(shù)據(jù)的流向,數(shù)據(jù)名稱標在箭頭的邊上 加工:輸入數(shù)據(jù)經過加工變換產生輸出。使用圓框代表加工 數(shù)據(jù)存儲:指處理過程中存放各種數(shù)據(jù)。使用雙杠(或單杠 ) 表示數(shù)據(jù)文件或數(shù)據(jù)庫。文件與加工之間用箭頭線連 接,單向表示只讀或只寫,雙向表示可讀可寫 數(shù)據(jù)源點或終點:指軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng),統(tǒng)稱為外部實體 ) 。使用方框 表示數(shù)據(jù)的源點和終點(4)建立數(shù)據(jù)流圖的步驟第一步:由外向里:先畫系統(tǒng)

12、的輸入輸出,然后畫系統(tǒng)的 內部。第二步:自頂向下:順序完成頂層、中間層、底層數(shù)據(jù)流 圖。第三步:逐層分解。5. DFD圖的數(shù)據(jù)流可分為兩種類型:變換流和事務流(1)變換流:信息沿著輸入通路進入系統(tǒng),同時將信息的 外部形式轉換成內部形式,通過變換中心處理之后,再沿 著輸出通路轉換成外部形式輸出( 2)事務流:信息沿著輸入通路到達一個事務中心,事務 中心根據(jù)輸入信息的類型在若干個動作序列中選擇一個來執(zhí)行,這種信息流稱為事務流6數(shù)據(jù)字典數(shù)據(jù)字典就是用來定義數(shù)據(jù)流圖中的各個成分的具體含義 和詳細的描述。它和數(shù)據(jù)流圖共同構成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。是結構化分析方法的核心。數(shù)據(jù)字

13、典是為分析人員查找數(shù)據(jù)流圖中有關名字的詳細定義而服務的。數(shù)據(jù)字典有四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲和基本加工。7判定表舉例(1 )年交易額在 5 萬或 5 萬以下,則不給予折扣;2)對于年交易額在 5 萬以上時: 如果無欠款,則給予 15%的折扣; 如果有欠款,而且與本公司的交易關系在 20 年以上, 則折扣為 10%; 如果有欠款,而且與本公司交易關系在 20 年以下, 則折扣為 5%。8軟件需求規(guī)格說明書 : 是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。作用:1)作為用和開發(fā)人員之間的合同;2)作為開發(fā)人員進行設計和編程的根據(jù);)作為軟件開發(fā)完成后驗收的依據(jù)39 .結構化設計方

14、法(簡稱SD)是實現(xiàn)軟件概要設計的關鍵技術之一 , SD 方法是一種面向數(shù)據(jù)流的設計方法, 它與 SA 方 法銜接。SD方法的中心任務就是把用DFD圖表示的系統(tǒng)分析模型方 便地轉換為軟件結構的設計模型。SD方法采用結構圖(簡稱SC)來描述程序的結構。結構圖的 基本成分有模塊、調用和數(shù)據(jù)。10軟件設計的基本原理包括:抽象、模塊化、信息隱蔽 和模塊獨立性。1)抽象。抽象是一種思維工具,就是把事物本質的共同特性提取出來而不考慮其他細節(jié)。2)模塊化。解決一個復雜問題時自頂向下逐步把軟件系統(tǒng) 劃分成一個個較小的、相對獨立但又不相互關聯(lián)的模塊的 過程。注:模塊是在程序中數(shù)據(jù)說明、可執(zhí)行語句等程序對象的 集

15、合。3)信息隱蔽。每個模塊的實施細節(jié)對于其他模塊來說是隱蔽的。4)模塊獨立性。軟件系統(tǒng)中每個模塊只涉及軟件要求的具 體的子功能,而和軟件系統(tǒng)中其他的模塊的接口是簡單的模塊的耦合性和內聚性是衡量軟件的模塊獨立性的兩個定 性指標。a. 內聚性:是對模塊功能強度的度量,即對一個模塊內部 各個元素(語句之間、程序段)間彼此結合的緊密程度的 度量。b. 耦合性:是模塊間互相連接的緊密程度的度量。模塊之 間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。 注:一個設計良好的軟件系統(tǒng)應具有高內聚、低耦合的特 征。在結構化程序設計中,模塊劃分的原則是:模塊內具有高 內聚度,模塊間具有低耦合度。軟件設計有兩個步

16、驟:概要設計(總體設計)和詳細設計 (過程設計) 。(1)概要設計(又稱結構設計)是將軟件需求轉化為軟件 體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式;(2)詳細設計是確定每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結構, 通過對結構表示進行細化,得到軟件的詳細數(shù)據(jù)結構和算 法。11軟件概要設計的基本任務是:1)設計軟件系統(tǒng)結構;2)數(shù)據(jù)結構及數(shù)據(jù)庫設計;3)編寫概要設計文檔;)概要設計文檔評審。 4概要設計的圖形工具:層次圖、 HIPO 圖和結構圖12結構圖是常用的軟件結構設計工具,相關術語如下:1 深度:表示控制的層數(shù)。2 上級模塊、 從屬模塊: 上、下兩層模塊 a 和 b ,且有 a 調 用 b

17、,則 a 是上級模塊, b 是從屬模塊。3 寬度:整體控制跨度(最大模塊數(shù)的層)的表示。4 扇入:調用一個給定模塊的模塊個數(shù)。5 扇出:一個模塊直接調用的其他模塊數(shù)。6 原子模塊:樹中位于葉子結點的模塊。13詳細設計的常用工具:1. 程序流程圖(程序框圖)2. N-S 圖,也稱盒圖3. PAD 問題分析圖4、PDL 過程設計語言六了里軟件測試的目的和準則1軟件測試就是保證軟件質量的重要手段,其主要過 程涵蓋了整個軟件生命周期的過程,包括需求定義階段的 需求測試、編碼階段的單元測試、集成測試以及后期的確 認測試、系統(tǒng)測試、驗證軟件是否合格、能否交付給用戶 使用。軟件測試就是使用人工或自動手段來運

18、行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是 弄清預期結果與實際結果之間的差別。2軟件測試的原則:1)所有測試都應追溯到需求2)嚴格執(zhí)行測試計劃,排除測試的隨意性3)避免由軟件開發(fā)人員測試自己的程序,充分注意測試中 的群集性現(xiàn)象4)除了很小的程序外, “徹底”的窮舉測試是不可能的5)妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終的分析 報告,為維護提供方便軟件測試的每一次測試都需要準備好一些測試數(shù)據(jù),與被測程序一起輸入到計算機中執(zhí)行; 一般把程序執(zhí)行一次需要的一組測試數(shù)據(jù)和該組測試數(shù)據(jù) 可以得出怎樣的輸出結果 (期望結果 )稱為一個 “測試用例” , 每一個測試用例產生一個相應的

19、“測試結果” ,如果它與“期望結果”不相符合,說明程序中存在錯誤,需要改正錯誤。測試是對軟件規(guī)格說明、設計和編碼的最后的復審,所以 軟件測試貫穿在整個軟件開發(fā)期的全過程。七軟件測試的方法和實施對于軟件測試方法和技術,可以從不同的角度加以分類。 從是否需要執(zhí)行被測軟件的角度,軟件測試分為靜態(tài)分析和動態(tài)測試按照功能劃分,動態(tài)測試又分為白盒測試和黑盒測試靜態(tài)測試一般是指人工評審軟件文檔或程序,借以發(fā)現(xiàn)其中的錯誤,由于被評審的文檔或程序不必運行,所以稱為 靜態(tài)的。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。動態(tài)測試是指通過運行軟件來檢查軟件中的動態(tài)行為和運 行結果的正確性,也就是常說的上機測試

20、。動態(tài)測試一般包括兩個基本要素:被測程序和測試數(shù)據(jù)測試能否發(fā)現(xiàn)錯誤取決于測試用例的設計。動態(tài)測試的設計測試用例的方法一般分為黑盒測試和白盒測試 白盒測試也稱結構測試,它與程序內部結構相關,要利用 程序結構的實現(xiàn)細節(jié)設計測試用例,它涉及程序風格、控 制方法、源程序、數(shù)據(jù)庫設計和編碼細節(jié)。黑盒測試是測試者已經知道被測程序的功能,而對程序內部的邏輯 結構和處理過程完全不用考慮,只是對它的每一個功能進 行測試,將測試后的結果與期望的結果進行分析比較,檢 查程序的功能是否符合規(guī)格說明書的要求。 黑盒測試是在程序接口進行的測試測試用例設計測試用例是由測試數(shù)據(jù)和期望結果組成。設計測試用例的目的就是用盡可能少的測試數(shù)據(jù),達到盡可能大的程序覆蓋面,發(fā)現(xiàn)盡可能多的軟件錯誤和問題 用白盒法設計測試用例常用以下幾種技術: 語句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋 條件組合覆蓋 路徑覆蓋用黑盒法設計測試用例常用以下幾種技術: 等價類劃分法 邊界值分析法 錯誤推測法 因果圖法軟件測試的實施 單元測試:是對每一個編制好的模塊進行測試,其目的 在于發(fā)現(xiàn)和排除各模塊內部可能存在的差錯及詳細設計中 產生的錯誤。進行單元測試時,根據(jù)程序的內部結構設計 測試用例,主要采用白盒測試法軟件測試的實施 集成測試。是在單元測試的基礎上,將所有模塊按照設 計要求

溫馨提示

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

評論

0/150

提交評論