C語言公共基礎(chǔ)知識之軟件工程_第1頁
C語言公共基礎(chǔ)知識之軟件工程_第2頁
C語言公共基礎(chǔ)知識之軟件工程_第3頁
C語言公共基礎(chǔ)知識之軟件工程_第4頁
C語言公共基礎(chǔ)知識之軟件工程_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

軟件工程二級公共基礎(chǔ)輔導(dǎo)第3章軟件工程基礎(chǔ)3.1軟件工程的基本概念3.2結(jié)構(gòu)化分析方法3.3結(jié)構(gòu)化設(shè)計方法3.4軟件測試3.5程序的調(diào)試3.1軟件工程基本概念軟件定義與軟件特點軟件危機與軟件工程軟件工程過程與軟件生命周期軟件工程的目標與原則軟件開發(fā)工具與開發(fā)環(huán)境3.1.1軟件定義與軟件特點1.軟件定義:軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及其相關(guān)文檔組成的完整集合。

軟件=程序+數(shù)據(jù)+文檔程序:程序是按事先設(shè)計好的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù):數(shù)據(jù)是指程序能正常處理信息的數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu)。文檔:文檔是與程序運行和維護有關(guān)的圖文資料。2.軟件的特點:(1)

軟件具有抽象特征。(2)

軟件具有無明顯制造過程特征。(3)

軟件無設(shè)備的特征。(4)

手工制作特征。(5)

成本昂貴特征。3.1.2軟件危機與軟件工程1.軟件危機:泛指在軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。總之,可以將軟件危機歸結(jié)為成本、質(zhì)量、生產(chǎn)率等問題。2.軟件工程軟件工程:應(yīng)用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。主要思想:強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則。軟件工程三要素:方法、工具、過程。方法:完成軟件工程項目的技術(shù)手段;工具:支持軟件的開發(fā)、管理、文檔生成;過程:支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。返回3.1.3軟件工程過程與軟件生命周期軟件工程過程:把輸入轉(zhuǎn)化為輸出的一組彼此相關(guān)的資源和活動。(通常把用戶的要求轉(zhuǎn)變?yōu)檐浖a(chǎn)品的過程也叫做軟件開發(fā)過程).軟件生命周期:將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。軟件生命周期的三個階段:定義階段(可行性研究、需求分析)開發(fā)階段(概要設(shè)計、詳細設(shè)計、編碼、測試)運行維護階段(使用、維護、退役)返回3.1.4軟件工程的目標與原則軟件工程的目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。軟件工程的原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性、可驗證性返回3.1.5軟件開發(fā)工具與軟件開發(fā)環(huán)境軟件開發(fā)工具:為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境。軟件開發(fā)環(huán)境:是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來,支持軟件生命周期內(nèi)的各個階段和各項任務(wù)的完成。計算機輔助軟件工程(CASEComputerAidedSoftwareEngineering)是當(dāng)前軟件開發(fā)環(huán)境中富有特色的研究工作和發(fā)展方向。3.2結(jié)構(gòu)化分析方法需求分析與需求分析方法結(jié)構(gòu)化分析方法軟件需求規(guī)格說明書3.2.1需求分析方法軟件需求:指用戶對目標軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析任務(wù):發(fā)現(xiàn)需求、求精、建模和定義需求的過程。需求分析階段的工作:需求獲取需求分析編寫需求規(guī)格說明書需求評審需求分析方法分為:結(jié)構(gòu)化分析方法與面向?qū)ο蟮姆治龇椒ǎ航Y(jié)構(gòu)化分析方法面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA)面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD)面向?qū)ο蟮姆治龇椒ǎ∣OA),從需求分析建立的模型的特性來分:靜態(tài)分析方法動態(tài)分析方法3.2.2結(jié)構(gòu)化分析方法含義:是結(jié)構(gòu)化程序設(shè)計理論在軟件需求分析階段的運用。目的:幫助弄清用戶對軟件的需求。實質(zhì):著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。結(jié)構(gòu)化分析的常用工具數(shù)據(jù)流圖(DataFlowDiagram)DFD

數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。

加工

數(shù)據(jù)流

存儲文件

源(潭)數(shù)據(jù)字典(DataDictionary,DD)是結(jié)構(gòu)化分析方法的另一種有力工具,在數(shù)據(jù)字典中建立的一組嚴密一致的定義有助于消除分析員和用戶之間的溝通障礙,因此將消除許多可能的誤解。判定樹判定表返回3.2.3軟件需求規(guī)格說明書含義(SRS):是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。作用:便于用戶、開發(fā)人員進行理解和交流;反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);作為確認測試和驗收的依據(jù);特點:正確性、完整性、確定性、一致性、可理解性、可驗證性、課修改、可追蹤性。3.3結(jié)構(gòu)化設(shè)計3.3.1軟件設(shè)計的基本概念軟件設(shè)計的目標:用比較抽象概括的方式確定目標系統(tǒng)如何完成預(yù)定的任務(wù),即確定系統(tǒng)的物理模型。分類:概要設(shè)計和詳細設(shè)計返回2.軟件設(shè)計的基本原理抽象:就是提取出事物的本質(zhì)特征而暫時不考慮它們的細節(jié)。模塊化信息隱蔽:在一個模塊內(nèi)包含的信息,對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性:每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。(模塊獨立程度是評價設(shè)計好壞的重要度量標準)模塊獨立性是評價設(shè)計好壞的重要度量標準內(nèi)聚性:一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量。分類如下:(由弱到強)偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚、過程內(nèi)聚、通信內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚耦合性:模塊間相互連接的緊密程度的度量。分類如下(由高到低)內(nèi)容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數(shù)據(jù)耦合、非直接耦合優(yōu)秀的設(shè)計:盡量做到高內(nèi)聚、低耦合。3.結(jié)構(gòu)化設(shè)計方法含義:結(jié)構(gòu)化設(shè)計方法與結(jié)構(gòu)化分析方法相對應(yīng),它是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各成分之間的內(nèi)部聯(lián)系的技術(shù)?;舅枷耄簩④浖O(shè)計成由相對獨立、單一功能的模塊組成的結(jié)構(gòu)。3.3.2概要設(shè)計1.概要設(shè)計的任務(wù):設(shè)計軟件系統(tǒng)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計編寫概要設(shè)計文檔概要設(shè)計文檔評審常用軟件結(jié)構(gòu)設(shè)計工具:結(jié)構(gòu)圖(SC)

一般模塊數(shù)據(jù)信息

控制信息概要設(shè)計2.面向數(shù)據(jù)流的設(shè)計方法(1)數(shù)據(jù)流的類型:變換型:取得數(shù)據(jù)、變換數(shù)據(jù)、輸出數(shù)據(jù)事務(wù)型:接受事務(wù)、分析確定其類型、選取活動通路(2.

)設(shè)計過程:第一,分析、確認數(shù)據(jù)流圖的類型;第二,說明數(shù)據(jù)流的邊界;第三,把數(shù)據(jù)流映射為程序結(jié)構(gòu);第四,根據(jù)設(shè)計準則對產(chǎn)生的結(jié)構(gòu)進行細化和求精。概要設(shè)計3.設(shè)計的準則:提高模塊的獨立性;模塊規(guī)模適中;深度、寬度、扇出和扇入適當(dāng);頂層高扇出、中間扇出較少、底層高扇入使模塊的作用域在該模塊的控制域內(nèi);應(yīng)減少模塊的接口和界面的復(fù)雜性;設(shè)計成單入口、單出口的模塊;設(shè)計功能可預(yù)測的模塊返回3.3.3詳細設(shè)計

詳細設(shè)計:在概要設(shè)計階段完成了軟件系統(tǒng)的總體設(shè)計,規(guī)定了各個模塊的功能及模塊之間的聯(lián)系之后,進一步就要考慮實現(xiàn)各個模塊規(guī)定的功能,也就是進行軟件的詳細設(shè)計,也稱為過程設(shè)計。在詳細設(shè)計階段,要根據(jù)概要設(shè)計對每個模塊的定義進行設(shè)計,以實現(xiàn)指定的功能、算法和外部接口所要求的模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和程序的邏輯結(jié)構(gòu)。

詳細設(shè)計

模塊設(shè)計要完成的工作包括:詳細的算法過程設(shè)計內(nèi)部數(shù)據(jù)結(jié)構(gòu)設(shè)計程序邏輯結(jié)構(gòu)設(shè)計當(dāng)前流行的表示程序邏輯結(jié)構(gòu)的主要方式有:圖形描述(程序流程圖、N-S圖及PAD圖)語言描述(PDL)

詳細設(shè)計

程序流程圖:

程序流程圖(ProgramFlowChart)又稱為程序框圖,是軟件設(shè)計中經(jīng)常使用的一種算法表達工具。它獨立于程序設(shè)計語言,較為直觀、清晰,易于學(xué)習(xí)掌握??刂屏?加工步驟邏輯條件詳細設(shè)計

N-S圖(盒圖)

N-S圖也稱盒圖(Box-Diagram),是一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具。如下圖所示為選擇結(jié)構(gòu)的N—S圖。

條件THENELSE詳細設(shè)計

PAD圖:(ProblemAnalysisDiagram,問題分析圖),是用結(jié)構(gòu)化程序設(shè)計思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。用PAD所表達的程序,結(jié)構(gòu)清晰并且結(jié)構(gòu)化程度高。作為一種詳細設(shè)計的工具,它比流程圖更易讀,且由于PAD是一種樹形結(jié)構(gòu),比流程圖更容易在計算機上處理,容易將PAD圖轉(zhuǎn)換成程序。另外,PAD除了可以描述程序的邏輯結(jié)構(gòu),還可以描述數(shù)據(jù)結(jié)構(gòu)。

程序開始于最左主干線,結(jié)束于最左主干線。PAD圖示例A1A2A3……An條件多分支選擇結(jié)構(gòu)詳細設(shè)計PDL(ProcedureDesignLanguage)

PDL是一種用于描述功能模塊的算法設(shè)計和加工細節(jié)的語言,稱為過程設(shè)計語言。它是一種混合語言,采用英語的詞匯和結(jié)構(gòu)化程序設(shè)計語言的語法,類似編程語言。3.4.1軟件測試的目的軟件測試的定義:

軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試的目的測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。

返回3.4軟件測試3.4.2軟件測試的準則所有測試都應(yīng)追溯到需求;嚴格執(zhí)行測試計劃,排除測試的隨意性;充分注意測試中的群集現(xiàn)象;程序員應(yīng)避免檢查自己的程序;窮舉測試不可能;妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。返回3.4.3軟件測試技術(shù)與方法測試技術(shù)分類:按是否需要執(zhí)行被測軟件分:

靜態(tài)測試:代碼檢查、結(jié)構(gòu)分析等。 (人工測試或借助軟件工具)

動態(tài)測試:設(shè)計高效、合理的測試用例是關(guān)鍵。按功能劃分:

白盒測試和黑盒測試。(注意:白盒測試和黑盒測試均屬于動態(tài)測試)白盒測試

軟件的白盒測試是把測試對象看作一個透明的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要對程序模塊進行如下的檢查:對程序模塊的所有獨立的執(zhí)行路徑至少測試一次;對所有的邏輯判定,取“真”與取“假”的兩種情況都至少測試一次;在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。白盒測試白盒測試設(shè)計測試用例的方法:邏輯覆蓋基本路徑測試

白盒測試邏輯覆蓋:

邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)設(shè)計測試用例的技術(shù),屬于白盒測試。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要求能掌握源程序的所有細節(jié)。邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋和路徑覆蓋。白盒測試發(fā)現(xiàn)錯誤的能力

強語句覆蓋每個語句至少能執(zhí)行一次判定覆蓋每個判定的分支至少執(zhí)行一次。條件覆蓋每一判定中的每個條件,分別按“真”、“假”至少各執(zhí)行一次判斷/條件覆蓋同時滿足判定覆蓋和條件覆蓋的要求條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執(zhí)行一次邏輯覆蓋測試的5種標準

白盒測試基本路徑測試:思想:根據(jù)軟件過程性描述中的控制流程確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑集合,并由此導(dǎo)出一組測試用例對每一條獨立執(zhí)行路徑進行測試。返回黑盒測試

黑盒測試:就是依據(jù)軟件的需求規(guī)格說明書,檢查程序的功能是否符合用戶要求。這種測試不需要考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,完全把測試對象看作一個黑盒子。又稱為功能測試或數(shù)據(jù)驅(qū)動測試。

黑盒測試主要針對以下內(nèi)容:

程序是否按照需求完整正確地實現(xiàn)了功能。

程序的接口是否正確有效。

程序輸出的數(shù)據(jù)或外部數(shù)據(jù)庫訪問是否正確。

程序性能是否符合需求。

程序初始化和終止是否正確。黑盒測試黑盒測試方法有:等價類劃分法:將所有可能的輸入數(shù)據(jù)劃分成若干等價類,然后從每一類中選取數(shù)據(jù)作為測試用例。邊界值分析法:對各種輸入輸出范圍的邊界情況設(shè)計測試用例。錯誤推測法:列舉出程序中所有可能的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。因果圖法功能圖應(yīng)用階段:確認測試。返回軟件測試的實施單元測試集成測試確認測試系統(tǒng)測試單元測試定義:對軟件設(shè)計的最小單位——模塊(程序單元)進行正確性檢驗的測試。目的:發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯誤。依據(jù):詳細設(shè)計說明書和源程序。技術(shù)手段:靜態(tài)分析和動態(tài)測試(以白盒測試為主,黑盒測試為輔)。集成測試含義:測試和組裝軟件的過程。它是把模塊在按照設(shè)計要求組裝起來的同時進行測試。目的:發(fā)現(xiàn)與接口有關(guān)的錯誤。依據(jù):概要設(shè)計說明書。組裝模塊方式:非增量方式和增量方式(分為自頂向下、自底向上、混合增量)。確認測試任務(wù):驗證軟件的功能和性能及其他特性是否滿足了需求規(guī)格說明書中的需求,以及軟件配置是否完全、正確。技術(shù)手段:黑盒測試。依據(jù):需求規(guī)格說明書。系統(tǒng)測試含義:將通過測試確認的軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實際運行環(huán)境下對計算機系統(tǒng)進行一系列的集成測試和確認測試。功能:評估系統(tǒng)環(huán)境下軟件的性能,發(fā)現(xiàn)和捕捉軟件中潛在的錯誤。目的:在真實的系統(tǒng)工作環(huán)境下檢驗軟件是否能與系統(tǒng)正確連接,發(fā)現(xiàn)軟件與系統(tǒng)需求不一致的地方。具體實施:功能測試、性能測試、操作測試、配置測試、外部接口測試、安全性測試等。3.5程序的調(diào)試程序調(diào)試的基本概念軟件調(diào)試方法程序調(diào)試的基本概念任務(wù):診斷和改正程序中的錯誤。基本步驟錯誤定位修改設(shè)計和代碼,以排除錯誤進行回歸測試,防止引進新的錯誤程序調(diào)試的原則確定錯誤的性質(zhì)和位置時的原則:分析思考與錯誤征兆有關(guān)的信息;避開死胡同;只把調(diào)試工具當(dāng)輔助手段使用;避免用試探法,最多只當(dāng)最后手段。程序調(diào)試的基本概念程序調(diào)試的原則修改錯誤的原則:在出現(xiàn)錯誤的地方,很可能還有別的錯誤;避免只修改錯誤的一部分;修正一個錯誤的同時還可能引入新錯誤;修改錯誤的過程將迫使人們暫時回到程序設(shè)計階段;修改源程序代碼,不要改變目標代碼。返回軟件調(diào)試方法調(diào)試的關(guān)鍵在于推斷程序內(nèi)部的錯誤位置及原因。以靜態(tài)調(diào)試(通過人的思維來分析源程序代碼和排錯)為主,動態(tài)調(diào)試為輔。調(diào)試方法:強行排錯法回溯法原因排除法(1)構(gòu)成計算機軟件的是A)源代碼B)程序和數(shù)據(jù)C)程序和文檔D)程序、數(shù)據(jù)及相關(guān)文檔(4)軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是A)學(xué)生成績管理系統(tǒng)B)C語言編譯程序C)UNIX操作系統(tǒng)D)數(shù)據(jù)庫管理系統(tǒng)(7)下面描述中,不屬于軟件危機表現(xiàn)的是A)軟件過程不規(guī)范B)軟件開發(fā)生產(chǎn)率低C)軟件質(zhì)量難以控制D)軟件成本不斷提高(9)下面不屬于軟件工程的3個要素是A)工具B)過程C)方法D)環(huán)境(11)軟件生命周期是指A)軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程B)軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程C)軟件的開發(fā)過程D)軟件的運行維護過程(12)軟件生命周期中的活動不包括A)市場調(diào)研B)

溫馨提示

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

評論

0/150

提交評論