《軟件工程基礎》PPT課件.ppt
《《軟件工程基礎》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《軟件工程基礎》PPT課件.ppt(42頁珍藏版)》請在裝配圖網上搜索。
1、第三章 軟件工程基礎,主要內容,3.1 軟件工程基本概念 3.2 結構化分析方法 3.3 結構化設計方法 3.4 軟件測試 3.5 程序的調試,3.1 軟件工程基本概念,3.1.1 軟件定義與特點,區(qū)分兩組容易混淆名詞:,程序:軟件的組成部分。 軟件:包括程序、數據和相關文檔的完整組合。,,,程序設計:只是軟件開發(fā)過程中的必要環(huán)節(jié)。 軟件開發(fā):還包括需求分析、概要和詳細設計、軟件測試、運行和維護等多個環(huán)節(jié)。,定義:是指包括程序、數據以及相關文檔的完整組合。 國標定義:與計算機系統(tǒng)的操作有關的計算機程序、規(guī)程、規(guī)則以及可能有的文件、文檔及數據。,組成:,分類:系統(tǒng)軟件、應用軟件和支撐軟件(或工具
2、軟件)。,,(1)機器可執(zhí)行的程序和數據 (2)機器不可執(zhí)行的,與軟件開發(fā)、運行、維護和使用等有關的文檔。,特點:,具有抽象性(不是物理實體); 沒有明顯制作過程; 在運行、使用期不存在磨損和老化問題; 軟件開發(fā)、運行對計算機系統(tǒng)具有依賴性; 軟件復雜性高、成本昂貴; 軟件開發(fā)涉及諸多社會因素。,軟件危機,,3.1.2 軟件危機與軟件工程,定義:泛指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。 作用:為了消除軟件危機,逐步形成了軟件工程概念,開辟了工程學新興領域-軟件工程學。,軟件工程,國標定義:軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。,
3、三要素:,,(1) 方法:完成軟件工程項目的技術手段。 (2) 工具:支持軟件的開發(fā)、管理和文檔生成。 (3) 過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。,,定義:軟件產品從提出、實現、使用維護到停止使用的過程稱為軟件生命周期。,3.1.3 軟件生命周期,三個階段:,(1)可行性研究與計劃制定:確定開發(fā)目標和總的要求,給出功能、可靠性等可能方案,制定實施計劃。 (2)需求分析:對軟件需求進行分析并給出詳細定義,編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。,(3)軟件設計:概要設計和詳細設計,給出軟件的結構、模塊和功能的劃分等。編寫概要設計、詳細設計說明書和測試計劃初稿。 (4) 軟件實現:源
4、程序編碼,把軟件設計轉換成計算機可以接受的程序代碼。編寫用戶手冊、操作手冊和單元測試計劃。 (5)軟件測試:設計測試用例,檢驗軟件各個組成部分。編寫測試分析報告。,軟件運行 (6) 軟件投入運行,維護(進行擴充和刪改)。 和維護,3.1.4 軟件工程的目標與原則,基本目標:較低開發(fā)成本達到要求軟件功能,取得較好性能;軟件易于移植,維護費用低;按時完成開發(fā),及時交付使用。,原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。(見后),3.1.5 軟件開發(fā)工具與軟件開發(fā)環(huán)境,軟件開發(fā)工具:是用于幫助軟件開發(fā)人員開發(fā)和維護軟件的一類特殊軟件,它可以大大提高軟件開發(fā)的效率。,軟件開
5、發(fā)環(huán)境:是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來,支持軟件生命周期內的各個階段和各項任務的完成。,CASE:計算機輔助軟件工程,3.2 結構化分析方法,3.2.1 需求分析與需求分析方法,1.需求分析:,,軟件需求:指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。,需求分析定義:開發(fā)人員準確理解用戶的要求,調查分析,將用戶非正形的需求陳述轉化為完整的需求定義,再轉換到相應的需求格式說明的過程。,任務:發(fā)現需求(用戶需要軟件做什么)、求精、建模和定義需求的過程。,需求分析階段的工作(四方面):,2.需求分析方法:結構化分析方法和面向對象的分析
6、方法,(1)需求獲取:目的是確定系統(tǒng)各方面需求。與用戶交流、溝通全面地提煉出系統(tǒng)的功能性與非功能性需求。 (2)需求分析:對獲取的需求分析和綜合,給出系統(tǒng)解決方案和邏輯模型。 (3)編寫需求規(guī)格說明書:為用戶、設計人員的交流提供方便,還可作為控制軟件開發(fā)進程的依據。 (4)需求評審:復審需求分析階段的工作,驗證需求文檔的一致性、可行性等。,3.2.2 結構化分析方法,定義:結構化分析是使用數據流圖(DFD)、數據字典(DD)、結構化英語、判定表和判定樹等工具,建立一種新的、稱為結構化規(guī)格說明的目標文檔?!?實質:面向數據流,以數據流圖和數據字典為主要工具,建立系統(tǒng)的邏輯模型。,主要步驟(四步
7、): (1) 獲取當前系統(tǒng)的具體模型 (2) 抽象出當前系統(tǒng)的邏輯模型 (3) 建立目標系統(tǒng)的邏輯模型 (4) 編寫目標系統(tǒng)的軟件需求規(guī)格說明,常用工具:、數據字典、判定表和判定樹 。,1.數據流圖(DFDData Flow Diagram ),作用:以圖形的方式描述數據在系統(tǒng)中流動和處理的過程,使用DFD為系統(tǒng)建立邏輯模型。,基本符號(四種):,步驟(三步):,(1)由外向里:先畫系統(tǒng)輸入/輸出,再畫系統(tǒng)的內部。 (2)自頂向下:順序完成頂層、中間層、底層數據流圖。 (3)逐層分解。,先建立頂層 數據流圖,,包含:相關外部實體及它們與軟件中間的數據流 作用:描述軟件作用范圍、總體功能、輸入/
8、輸出等,舉例:,2.數據字典(DDData Dictionary ),定義:是所有與系統(tǒng)相關的數據元素的一個有組織的列表,以及精確、嚴格的詳細定義。,作用:對DFD中出現的被命名的圖形元素的確切解釋。數據字典與DFD共同構成了系統(tǒng)的邏輯模型。,定義數據的基本符號:,舉例:(見教材P ),3.判定樹,描述方法:分清哪些是判定的條件,哪些是判定的結論,并找出判定條件之間的從屬關系、并列關系、選擇關系,根據它們構造判定樹。,優(yōu)點:更加直觀,易于理解和使用。,舉例:“檢查取款單”的判定樹 (見教材圖3.3 ),,4.判定表,使用條件:當數據流圖中的加工要依賴于多個邏輯條件的取值時(該加工的一組動作是由
9、于某一組條件取值的組合而引發(fā)的),使用判定表描述比較適宜。,組成(四部分): (1) 基本條件,各種可能的條件 (2) 條件項,各種可能的條件組 (3) 基本動作,所有的操作 (4) 動作項,對應的條件組合下所選的操作,舉例: “檢查取款單”的判定表,3.2.3 軟件需求規(guī)格說明書,定義:是需求分析階段的最后成果,軟件開發(fā)的重要文檔之一。它對所開發(fā)的軟件的功能、性能、用戶界面及運行環(huán)境等進行詳細說明。,作用:便于用戶與開發(fā)人員交流;作為軟件開發(fā)的依據;作為測試和驗收的依據。,內容:制定出完整的信息描述、詳細的功能說明、恰當的檢驗標準以及其他有關數據。(具體內容見教材P17),特點:正確而無歧義
10、性,簡明易懂,可修改性,可驗證性等。,3.3 結構化設計方法,3.3.1 軟件設計過程及原則,1.軟件設計基礎知識,定義:軟件設計是把軟件需求轉換為軟件的具體設計方案,即模塊結構的過程。確定系統(tǒng)的物理模型。,內容:,,從技術觀點:包括軟件結構設計、數據設計、接口設計、過程設計。,從工程管理角度:,,概要設計:確定軟件系統(tǒng)結構,模塊劃分。 詳細設計:確立每個模塊的實現算法和局部數據結構。,一般過程:是一個迭代過程,先進行高層次結構設計;再進行低層次過程設計;穿插數據設計和接口設計。,2.軟件設計基本原則,(1)抽象:抽出事物的本質特性而不考慮其他細節(jié)??紤]模塊劃分解決方案時,可定多個抽象級別。
11、(2)模塊化:指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。 (3)信息隱蔽:模塊內包含的信息,不允許其他不需要這些信息的模塊訪問。即每個模塊的實現細節(jié)對其他模塊來說是隱蔽的。 (4)模塊獨立性:每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。,度量標準,,耦合性:模塊間互相連接的緊密程度。 內聚性:一個模塊內部各個元素間彼此結合的緊密程度。,高內聚 低耦合,3.3.2 結構化設計方法,基本思想:將軟件設計成由相對獨立且具有單一功能的模塊組成的結構 。,1.概要設計及結構圖,基本任務(四點):,(1)設計軟件系統(tǒng)結構,,需求分析階段:已將系統(tǒng)分解成
12、層次結構。 概要設計階段:進一步劃分為模塊以及模塊的層次結構。,(2)數據結構及數據庫設計:實現需求定義和規(guī)格說明過程中提出的數據對象的邏輯表示 。,(3)編寫概要設計文檔:包括概要設計說明書、數據庫設計說明書,集成測試計劃等。,(4)概要設計文檔評審,結構圖,作用:軟件結構設計工具。反映系統(tǒng)的功能實現以及模塊與模塊之間的聯系與通信,即反映了系統(tǒng)的總體結構。,基本成分:模塊、數據和調用,基本圖符:,基本形式:,基本術語:,,深度:在多層次的結構圖中,其模塊結構的層次數 (控制的層數) 寬度:同一層模塊的最大模塊數(控制跨度) 扇出:一個模塊直接調用的其他模塊數目 扇入:調用一個給定模塊的模
13、塊個數。 上級模塊,從屬模塊:上下兩層模塊a和b, a調用b。 a是上級模塊, b是從屬模塊。,2.數據流圖到結構圖的變換,結構化設計方法的任務就是把需求分析得到的數據流圖變換為結構圖。,(1)數據流圖到結構圖的變換, 交換型:信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內部形式,進入系統(tǒng)的信息通過變換中心,經加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。,,變換型數據處理的工作過程分三步:取得數據、變換數據、輸出數據。,變換型系統(tǒng)結構圖分三部分:輸入、中心變換、輸出。, 事務型:數據流的特點是接受一項事務,根據事務處理的特點和性質,選擇分派一個適當的處理單元 (事務處理中心),
14、然后給出結果。,例圖:,例圖:,,(2)面向數據流設計方法的實施要點與設計過程,分析確認數據流圖的類型,區(qū)分是事務型還是變換型。,說明數據流的邊界,將數據流圖映射為程序結構圖,,事務流:區(qū)分事務中心和數據接收通路,映射成事務結構 變換流:區(qū)分輸出和輸入分支,映射成變換結構,對產生的結構細化和求精,3.詳細設計及工具,詳細設計任務:為軟件結構圖中的每一個模塊確定其實現算法和局部數據結構,并用某種選定的表達工具表示算法和數據結構的細節(jié)。,設計工具:,,圖形工具:程序流程圖、N-S圖、問題分析圖(PAD圖) 表格工具:判定表 語言工具: PDL(偽碼語言),(1) 程序流程圖:由一些描述不同種類操作
15、的帶有文字說明的圖框和流程線構成。,,優(yōu)點:直觀清晰,易于掌握 缺點:隨意轉移控制,且不易表示結構,(2) N-S圖:去掉流程線,全部算法寫在一個矩形框內。,(3) PAD圖:用結構化程序設計思想表現程序邏輯結構,描述軟件詳細設計。,,結構清晰、結構化程度高;易于閱讀。 最左端縱線是程序主干線,每增加一層向右擴展一條縱線(縱線數等于程序層次數)。 程序執(zhí)行:從最左端主干線上端點起,自上而下,從左向右執(zhí)行。終止于最左端主干線。,(4) PDL圖:過程設計語言,也稱結構化英語或偽碼。采用英語詞匯和結構化程序設計語言的語法。,3.4 軟件測試,3.4.1 軟件測試的目的與準則,1.目的:是為了發(fā)現錯
16、誤而執(zhí)行程序的過程。,2.準則(六點):,(1)所有測試都應追溯到需求:最嚴重的錯誤為程序無法滿足用戶需求。 (2)嚴格執(zhí)行測試計劃,排除測試的隨意性。 (3)注意測試中的群集現象,程序中存在錯誤的概率與該程序中已發(fā)現的錯誤數成正比,應集中對付那些錯誤群集的程序。 (4)程序員應避免檢查自己的程序。 (5)窮舉測試不現實(窮舉測試是指把程序所有可能的執(zhí)行路徑都進行檢查的測試)。 (6)妥善保存測試計劃、測試用例、和最終分析報告等。,3.4.2 軟件測試方法,研究內容:如何用最少的測試用例集合來測試出程序中更多的潛在錯誤。,關鍵技術:如何進行徹底的測試,如何設計測試用例等。,分類:,1.靜態(tài)測試
17、與動態(tài)測試(是否需要執(zhí)行被測軟件),(1)靜態(tài)測試:包括代碼檢查、靜態(tài)結構分析、代碼質量度量等??梢杂扇斯みM行或軟件工具自動進行。,(2)動態(tài)測試:設計一批測試用例,利用它們去運行程序,以發(fā)現程序錯誤的過程。,測試用例:為測試設計的數據。由測試輸入數據和與之對應的預期輸出結果組成。 格式 (輸入值集) , (輸出值集) ,,2.白盒測試與黑盒測試(按照功能劃分),(1)白盒測試:也叫結構測試或邏輯驅動測試,,在程序內部進行,完成軟件內部操作的驗證。 被測軟件看作一個透明的盒子,測試人員對程序內部的邏輯結構及處理過程完全了解 。,(2)黑盒測試:也叫功能測試或數據驅動測試,,在軟件接口處進行,完
18、成功能驗證。 被測軟件看作一個不透明的黑盒子,完全不考慮程序內部的邏輯結構和內部特性 。,3.白盒測試原則及測試用例,基本原則:保證所測模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內部數據結構的有效性。,局限性:是窮舉路徑測試,貫穿程序獨立路徑數是天文數字,即使每條路徑都經過了測試,仍可能有未發(fā)現錯誤。,主要方法:,(1)邏輯覆蓋測試,邏輯覆蓋:指以程序內部的邏輯結構為基礎的測試用例設計 技術。,邏輯表示:判斷、分支、條件等幾種表示方式。,語句覆蓋:選擇足夠多測試數據,使程序中每個語句至
19、少執(zhí)行一次。,路徑覆蓋:選擇足夠多測試用例,使程序中所有可能的路徑都至少執(zhí)行次。,判定覆蓋:保證程序中每個判斷的每個取值分支(“真”或“假”)至少執(zhí)行一次。,判定覆蓋比語句覆蓋強,但邏輯覆蓋程度仍不高。例如“x10”,只要一個條件為真,無論另一個條件是否錯誤,判斷結果都為真,無法保證查出判斷條件中的錯誤。,條件覆蓋:每個判斷的每個條件的可能取值至少執(zhí)行次。,判斷條件覆蓋:每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷的所有可能取值分支至少執(zhí)行一次。,(2)基本路徑測試,思想和步驟:根據軟件過程性描述中的控制流程確定程序的環(huán)路復雜性度量,用此度量定義基本路徑集合。,環(huán)路復雜度=程序流程圖中的判
20、斷框個數+1,舉例:,程序復雜度為3 x=-10, y=-10 覆蓋路徑:A B F x=10, y=-10 覆蓋路徑: A C D F x=10, y=10 覆蓋路徑: A C E F,4.黑盒測試原則及測試用例,內容:檢查程序功能是否能按照規(guī)格說明書的規(guī)定正常使用,程序是否能適當地接收輸入數據產生正確的輸出信息,并保持外部信息完整性.,方法(四種):,(1)等價類劃分法,基本思想:將程序所有可能的輸入數據劃分成若干等價類,然后從每個等價類中選取數據作為測試用例。對每個等價類,各輸入數據對發(fā)現程序中錯誤的幾率都是等效的,只需從每個等價類中選取一些有代表性的測試用例進行測試。,實施步驟:,,
21、劃分等價類 根據等價類選取測試用例,等價類分類:,,有效等價類:合理、有意義的輸入數據構成的集合。 無效等價類:不合理、無意義的輸入數據構成的集合。,(2)邊界值法,基本思想:對各種輸入、輸出范圍的邊界情況設計測試用例的方法。針對各種邊界情況設計測試用例,可以查出更多的錯誤。,(3)錯誤推測法,基本思想:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據它們選擇測試用例。需要豐富的經驗。,(4)因果圖法,基本思想:從功能說明書中找出因(輸入)和果(輸出),將功能說明書轉換成判定表,再為每種輸出條件的組合設計測試用例。,3.4.3 軟件測試的實施,四個步驟:單元測試、集成測試、確認測試和
22、系統(tǒng)測試,1.單元測試:,定義:對模塊(軟件設計最小單位)進行正確性檢驗的測試。,目的:發(fā)現各模塊內部可能存在的各種錯誤。,技術:靜態(tài)分析和動態(tài)測試,依據:詳細設計說明書和源程序,說明:單個模塊通常不是獨立的程序,不能運行。必須在真實或模擬環(huán)境下進行。模擬環(huán)境中為被測模塊設計和搭建驅動模塊和樁模塊。,,,驅動模塊:相當于被測模塊的主程序。它接收測試數據,并傳給被測模塊,輸出實際測試結果。 樁模塊:用于代替被測模塊調用的其他模塊,僅做少量的數據操作,不必將子模塊的所有功能帶入 。,2.集成測試:,定義:把模塊在按照設計要求組裝起來的同時進行測試 。,目的:發(fā)現與接口有關的錯誤,依據:概要設計說明
23、書,,采用方式(模塊組裝成程序):兩種,(1)非增量方式:也稱為一次性組裝方式。將測試好的每一個軟件單元一次組裝在一起再進行整體測試。,(2)增量方式:測試好的模塊逐步組裝成較大系統(tǒng),邊連接邊測試,以發(fā)現連接過程中產生的問題。,自頂向下:從主控模塊開始,沿控制層次自頂向下逐個連接模塊,自低向上:從最低層、最基本的軟件單元開始測試。不需要樁模塊,但需要驅動模塊。,混合增量:兩頭向中間逼近,“三明治”方法。,,3.確認測試:,任務:驗證軟件的功能和性能及其他特性是否滿足了需求規(guī)格說明中確定的各種需求,以及軟件配置是否完全正確。,實施:先用黑盒測試,驗證被測軟件是否滿足需求規(guī)格說明確認的標準。再復審
24、保證軟件配置齊全。,4.系統(tǒng)測試:,定義:將通過測試確認的軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設、人員等其他系統(tǒng)元素組合在一起,在實際運行環(huán)境下對計算機系統(tǒng)進行一系列的集成測試和確認測試。,目的:是在真實的系統(tǒng)工作環(huán)境下檢驗軟件是否能與系統(tǒng)正確連接,發(fā)現軟件與系統(tǒng)需求不一致的地方。,3.5 程序調試,任務:診斷和改正程序中的錯誤。,基本步驟:,,錯誤定位 修改設計和代碼糾錯 回歸測試:重復進行某些有關測試,確認該錯誤是否被排除,以及是否引進了新的錯誤。,3.5.2 軟件調試方法,3.5.1 基本概念,分類:,,調試方法:,1.強行排錯法:設置斷點和監(jiān)視表達式。程序執(zhí)行到某一
25、行時,自動停止運行,保留各變量狀態(tài),方便檢查校對。,2.回朔法:一旦發(fā)現錯誤,從最先發(fā)現“癥狀”的地方開始,沿程序的控制流程,逆向跟蹤源程序代碼,找到錯誤根源。,3.原因排錯法:,,(1)演繹法:從一般原理出發(fā)導出結論。設想及枚舉出所有可能出錯的原因作為假設。用測試數據逐個排除不可能正確的假設。最后再驗證余下的假設確定出錯的原因。,(2)歸納法:從特殊推出一般。從一些線索(錯誤征兆或等)著手,分析尋找潛在的原因,找出錯誤。,(3)二分法:已知每個變量在程序中若干個關鍵點的正確值,用賦值語句等在某點附近給變量賦正確值,運行程序檢查輸出。結果正確,錯誤原因在前半部分:反之在后半部分。重復使用該方法,縮小出錯范圍到容易診斷的程度為止。,需求分析,軟件設計,方法 模型 設計工具,結構化分析法,結構化設計方法,,,建立邏輯模型 編寫需求規(guī)格說明書,建立物理模型,概要設計 詳細設計,數據流圖,數據字典 判定表,判定樹,結構圖(數據流圖轉換為結構圖) 程序流程圖,N-S圖,PAD,PDL,總結,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復工安全生產培訓人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復工復產十注意節(jié)后復工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復工安全生產培訓勿忘安全本心人人講安全個個會應急
- 預防性維修管理
- 常見閥門類型及特點
- 設備預防性維修
- 2.乳化液泵工理論考試試題含答案