安徽工程大學軟件工程復習資料_第1頁
安徽工程大學軟件工程復習資料_第2頁
安徽工程大學軟件工程復習資料_第3頁
安徽工程大學軟件工程復習資料_第4頁
安徽工程大學軟件工程復習資料_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機及接口專業(yè):計算機科學與技術(shù)計算機科學與技術(shù)21022013年6月第一章軟件定義:軟件是:(1)指令的集合(計算機程序),通過執(zhí)行這些指令來滿足預(yù)期的特征、功能和性能需求; (2)數(shù)據(jù)結(jié)構(gòu),使得程序可以合理的利用信息;(3)文檔描述,用來描述程序操作和使用。軟件與硬件的區(qū)別:(1)軟件是設(shè)計開發(fā)的,而不是傳統(tǒng)意義上的生產(chǎn)制造的。(2)軟件不會“磨損”。(3)雖然整個工業(yè)向著基于構(gòu)件的構(gòu)造模式發(fā)展,然而大多數(shù)軟件仍是根據(jù)實際的顧客需求定制的這張圖表示的意思?(1)在完整的生存周期里,軟件將會面臨變更,每次變更都可能引入新的錯誤。不斷的變更是軟件退化的根本原因。(2)軟件維護要應(yīng)對變更請

2、求,比硬件維護更為復雜。軟件工程定義:1.種子定義:軟件工程是:建立和使用一套合理的工程原則,以便經(jīng)濟地獲得可靠的、可以在實際機器上高效運行的軟件。2.IEEE 定義:軟件工程是:(1)將系統(tǒng)化的、規(guī)范的、可量化的方法應(yīng)用于軟件的開發(fā)、運行和維護,即將工程化方法應(yīng)用于軟件。(2)在(1)中所述方法的研究軟件工程三要素:軟件工程的基礎(chǔ)是過程(process)層軟件工程方法(method)為構(gòu)建軟件提供技術(shù)上的解決方法(“如何做”)軟件工程工具(tool)為過程和方法提供自動化或半自動化的支持根基:質(zhì)量關(guān)注點(軟件工程的目標)軟件工程五個最基本的過程框架活動是什么? 溝通、策劃、建模、構(gòu)建、部署軟

3、件危機的概念、產(chǎn)生原因及其表現(xiàn)? a) 軟件危機:指的是在計算機軟件開發(fā)和維護過程中所遇到的一系列嚴重的問題。 b) 表現(xiàn):軟件代價高、開發(fā)進度難以控制、工作量估計困難、質(zhì)量差、修改維護困難。 c) 產(chǎn)生的原因:用戶的需求不明確、缺乏正確的理論指導、軟件規(guī)模越來越大、軟件的復雜度越來越大、軟件靈活行要求高、影響軟件生產(chǎn)率與質(zhì)量因素十分復雜。第二章瀑布模型特點: 文檔驅(qū)動優(yōu)點:(1)消除非結(jié)構(gòu)化軟件;(2)降低軟件的復雜度,促進軟件開發(fā)工程化。簡述瀑布模型在實際運用中所面臨的問題(缺點):1.實際的項目很少遵守瀑布模型提出的順序。雖然線

4、性模型可以加入迭代,但是它是用間接的方式實現(xiàn)的,結(jié)果是,隨著項目的推進,變更可能造成混亂。2.客戶通常難以清楚地描述所有的需求。而瀑布模型卻需要客戶明確需求,因此很難適應(yīng)在許多項目開始階段必然存在的不確定性。3.客戶必須要有耐心,因為只有在項目接近尾聲的時候,他們才能得到可執(zhí)行的程序。對于系統(tǒng)中存在的重大缺陷,如果在可執(zhí)行程序評審之前沒有被發(fā)現(xiàn),將可能造成慘重損失。原型模型優(yōu)點 :(1)需求表示清楚,用戶滿意度較高 (2)降低開始風險和開發(fā)成本 缺點 :(1)原型法不適用于開發(fā)大型的信息系統(tǒng) (2)系統(tǒng)難于維護 (3)如果用戶合作不好

5、,盲目糾錯,會拖延開發(fā)進程 第四章需求工程包括七個不同的活動:起始、導出、精化、協(xié)商、規(guī)格說明、確認和管理為什么需求的捕獲這么難? 范圍問題:系統(tǒng)的邊界不清楚理解問題:客戶并不能完全確定需要說明易變問題:需求隨時間變化導出需求:協(xié)作收集需求、質(zhì)量功能部署、用戶的場景、調(diào)查表、對用戶的現(xiàn)場觀察等質(zhì)量功能部署(QFD):是一種將客戶要求轉(zhuǎn)化成軟件技術(shù)需求的質(zhì)量管理技術(shù)。用例(use case):是外部可見的系統(tǒng)單元,這些功能由系統(tǒng)單元所提供,并通過一系列系統(tǒng)單元與一個或多個參與者之間交換的消息所表達。測試用例(testing case):指為實施一次測試而向被測試系統(tǒng)提供的輸入數(shù)據(jù),操作

6、各種環(huán)境設(shè)置。會畫簡單的用例圖:用例的關(guān)系:包含(include)、擴展(extend)、關(guān)聯(lián)(ascociation)、泛化(generalization)用例規(guī)約的基本內(nèi)容:簡要說明、事件流、用例場景、特殊需求、前置條件、后置條件第五章需求建模涉及的方法:結(jié)構(gòu)化分析方法、面向?qū)ο蠓治龇椒ɑ诮5脑兀夯趫鼍澳P?、基于類模型、基于行為模型、基于流模型用例圖、活動圖、類圖(應(yīng)用題):基本畫法、基本關(guān)系第六章數(shù)據(jù)流圖(DFD)的四個符號:即外部實體、數(shù)據(jù)加工、數(shù)據(jù)流和數(shù)據(jù)存儲(07年軟件設(shè)計師下午試題一)狀態(tài)圖、順序圖第七章模塊化(Modularity):是關(guān)注點分離最常見的表現(xiàn),軟件被劃分

7、為獨立命名的、可處理的構(gòu)件,有時被稱為模塊,把這些構(gòu)建集成到一起可以滿足問題的需求。模塊化的優(yōu)點:模塊化設(shè)計(以及由其產(chǎn)生的程序)是開發(fā)工作更易于規(guī)劃,可以定義和交付軟件增量,更容易實施變更,能夠更有效地開展測試和調(diào)試,可以長期維護而沒有嚴重的副作用。獨立性可以通過兩條定性的標準進行評估:內(nèi)聚性和耦合性。內(nèi)聚性顯示了某個模塊相關(guān)功能的強度。耦合性顯示了模塊間的相互依賴性。為什么我們總是努力構(gòu)造獨立模塊?(翻譯)具有有效模塊化(也就是獨立模塊)的軟件更容易開發(fā),這是因為功能被分隔而且接口被簡化。獨立模塊更容易維護和測試,因為修改設(shè)計或修改代碼所引起的副作用被限制,減少了錯誤擴散,而且模塊復用也成

8、為可能。概括的說,功能獨立是良好設(shè)計的關(guān)鍵,而設(shè)計又是軟件質(zhì)量的關(guān)鍵。第八章體系風格的分類:以數(shù)據(jù)為中心的體系結(jié)構(gòu)數(shù)據(jù)流體系結(jié)構(gòu)調(diào)用和返回體系結(jié)構(gòu)面向?qū)ο篌w系結(jié)構(gòu)層次體結(jié)構(gòu)結(jié)構(gòu)設(shè)計是一種映射技術(shù),常被作為面向數(shù)據(jù)流的方法,因為它提供了從數(shù)據(jù)流圖到軟件體系結(jié)構(gòu)的便捷的轉(zhuǎn)化變換的七個步驟:1評審基本系統(tǒng)模型 2評審和精化軟件的數(shù)據(jù)流圖 3確定DFD是否含有變換流或事物流特征 4通過確定輸入和輸出流的邊界,分隔出變換中心 5完成“第一級分解” 6完成“第二級分解” 7使用提高軟件質(zhì)量的設(shè)計啟發(fā)式方式,精化第一次迭代得到的體系結(jié)構(gòu)數(shù)據(jù)流圖(DFD)一般可分為“變換流”,“事物流”兩種。變換流(tran

9、sform flow):由輸入、輸出、變換三部分組成,是一順序結(jié)構(gòu)。事物流:它的某個加工,分離成許多發(fā)散的數(shù)據(jù)流,形成許多加工路徑,并且根據(jù)輸入值選擇其中一個路徑來執(zhí)行。第九章構(gòu)件(Component):系統(tǒng)中模塊化的、可部署的和可替換的部件,該部件封裝了實現(xiàn)并暴露一組接口。內(nèi)聚性(Cohesion):內(nèi)聚性指一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量。耦合性(Coupling):耦合性是指模塊間互相連接的緊密程度的度量。結(jié)構(gòu)化程序設(shè)計的特征是程序模塊只有一個入口和一個出口、程序中只包含順序、條件和循環(huán)三種控制結(jié)構(gòu)。決策表(應(yīng)用題)十四章軟件測試的總體策略過程:單元測試、編碼、集成測試、設(shè)計

10、、確認測試、需求、系統(tǒng)測試、系統(tǒng)工程單元測試的目的:驗證代碼能否達到詳細設(shè)計的預(yù)期要求。發(fā)現(xiàn)代碼中不符合編碼規(guī)范的地方。準確定位發(fā)現(xiàn)的錯誤,以便排除錯誤。集成測試的優(yōu)缺點(自頂向下集成):優(yōu)點:能盡早地對程序的主要控制和決策機制進行檢驗,因此較早地發(fā)現(xiàn)錯誤。缺點:在測試較高層模塊時低層處理采用樁模塊替代不能反映真實情況,重要數(shù)據(jù)不能及時回送到上層模塊,因此測試并不充分?;貧w測試(regression testing):是指在發(fā)生修改之后重新測試先前的測試以保證修改的正確性。alpha測試是在用戶組織模擬軟件系統(tǒng)的運行環(huán)境下的一種驗收測試,由用戶或第三方測試公司進行的測試,模擬各類用戶行為對即將

11、面市的軟件產(chǎn)品進行測試,試圖發(fā)現(xiàn)并修改錯誤。Beta測試是用戶公司組織各方面的典型終端用戶在日常工作中實際使用beta版本,并要求用戶報告異常情況,提出批評意見。區(qū)別:兩者的主要區(qū)別是測試的場所不同。Alpha測試是指把用戶請到開發(fā)方的場所來測試,beta測試是指在一個或多個用戶的場所進行的測試。Alpha測試的環(huán)境是受開發(fā)方控制的,用戶的數(shù)量相對比較少,時間比較集中。而beta測試的環(huán)境是不受開發(fā)方控制的,誰也不知道用戶如何折磨軟件,用戶數(shù)量相對比較多,時間不集中。一般地,alpha測試先于beta測試執(zhí)行。通用的軟件產(chǎn)品需要較大規(guī)模的beta測試,測試周期比較長。如果產(chǎn)品通過了beta測試

12、,那么就可以正式發(fā)行了測試和調(diào)試的區(qū)別1。測試的目的是找出存在的錯誤;而調(diào)試的目的是定位錯誤并修改程序以修改錯誤。2。調(diào)試是測試之后的活動,測試和調(diào)試在目標,方法和思路上都有所不同3。測試從一個已知的條件開始,使用預(yù)先定義的過程,有預(yù)知的結(jié)果;調(diào)試從一個未知的條件開始,結(jié)束的過程不可預(yù)計4。測試過程可以實現(xiàn)設(shè)計,進度可實現(xiàn)確定;調(diào)試不能描述過程或者持續(xù)時間。5。測試是在軟件生命周期的全過程中,而調(diào)試只在軟件生命周期的編碼階段中6。測試主要由測試人員進行,而編碼主要由開發(fā)人員進行。軟件測試:軟件測試是為了度量和提高被測試軟件的質(zhì)量,對測試條件進行工程設(shè)計,實施和維護的整個生命周期過程。白盒測試(

13、White-box testing):有時也稱為玻璃盒測試,是一種測試用例設(shè)計方法,它利用作為構(gòu)件層設(shè)計的一部分所描述的控制結(jié)構(gòu)來生成測試用例。黑盒測試(Black-box testing):也稱行為測試,側(cè)重于軟件的功能需求。即黑盒測試使軟件工程師能設(shè)計出將測試程序所有功能需求的輸入條件集?;韭窂綔y試(應(yīng)用題)黑盒測試和百合測試的區(qū)別:前者基于功能,后者基于結(jié)構(gòu)。黑盒測試常用技術(shù):邊界值、等價類、因果圖、錯誤推測法等白盒測試常用技術(shù):靜態(tài)結(jié)構(gòu)分析法、邏輯覆蓋法、基本路徑測試法、域測試。復雜性(yclomatic):是一種軟件度量,它為程序的邏輯復雜性提供一個量化的測度;導出測試用例:1 以

14、設(shè)計或源代碼為基礎(chǔ),畫出相應(yīng)的流圖。 2 確定所得流圖的環(huán)復雜性。 3 確定線性獨立路徑的基本集合。 4 準備測試用例,強制執(zhí)行基本集合中的每條路徑。(課本396-398)等價類劃分的基本思路:先從程序的規(guī)格說明書中找出各個輸入條件,再為每個輸入條件劃分兩個或多個等價類,形成若干的互不相交的子集。等價類劃分步驟:(1)先考慮輸入數(shù)據(jù)的類型(合法型和非法型)(2)再考慮數(shù)據(jù)范圍(合法型中的合法區(qū)間和非法區(qū)間)(3)畫出示意圖,區(qū)分等價類(4)為每一個等價類編號。需求分析的方法:結(jié)構(gòu)化分析(傳統(tǒng)建模方法)、面向?qū)ο蠓治觥R?、結(jié)構(gòu)化分析方法1、結(jié)構(gòu)化分析方法(Structure Analysis-S

15、A)(1) 定義是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。(2)結(jié)構(gòu)化分析的主要步驟通過對用戶的調(diào)查,以軟件的需求為線索,獲取當前系統(tǒng)的具體模型;去掉具體模型中非本質(zhì)因素,抽象出當前系統(tǒng)的邏輯模型;根據(jù)計算機的特點分析當前系統(tǒng)與目標系統(tǒng)的差別,建立目標系統(tǒng)的邏輯模型;完善目標系統(tǒng)并補充細節(jié),寫出目標系統(tǒng)的軟件需求規(guī)格說明。2、結(jié)構(gòu)化分析方法使用的常用工具(1)數(shù)據(jù)流圖(DFDData Flow Diagram ) 作用從數(shù)據(jù)傳遞和加工的角度,在需求分析階段以圖形的方式描述數(shù)據(jù)流從輸入到輸出的移動變換過程,為系

16、統(tǒng)建立邏輯模型。 注意:數(shù)據(jù)流圖中的箭頭表示的是數(shù)據(jù)流。程序流程圖中的箭頭表示的是控制流。 數(shù)據(jù)流圖中的基本圖形符號意義 數(shù)據(jù)流圖的層次結(jié)構(gòu)為了表達數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,需要采用層次結(jié)構(gòu)的數(shù)據(jù)流圖。按照系統(tǒng)的層次結(jié)構(gòu)進行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達和容易理解整個系統(tǒng)。 在多層數(shù)據(jù)流圖中,頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù)。 底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層。 中間層流圖則表示對其上層父圖的細化。它的每一加工可能繼續(xù)細化,形成子圖。 建立數(shù)據(jù)流圖的步驟第1步由外向里:先畫系統(tǒng)的輸

17、入輸出,然后畫系統(tǒng)的內(nèi)部。第2步自頂向下:順序完成頂層、中間層、底層數(shù)據(jù)流圖。第3步逐層分解。(2)數(shù)據(jù)字典 定義是所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個有組織的列表,以及精確、嚴格的詳細定義。 作用對DFD中出現(xiàn)的被命名的圖形元素的確切解釋,數(shù)據(jù)詞典與數(shù)據(jù)流圖配合,能清楚地表達數(shù)據(jù)處理的要求。 數(shù)據(jù)字典的組成數(shù)據(jù)項:是數(shù)據(jù)的最小單位;數(shù)據(jù)結(jié)構(gòu):是若干數(shù)據(jù)項的有意義的集合;數(shù)據(jù)流:可以是數(shù)據(jù)項,也可以是數(shù)據(jù)結(jié)構(gòu),表示某一個處理過程的輸入或輸出;數(shù)據(jù)存儲:處理過程中存取的數(shù)據(jù),常常是手工憑證、手工文檔或計算機文件;處理過程。(3) 判定樹使用判定樹進行描述時, 應(yīng)分清哪些是判定的條件,哪些是判定的結(jié)論,

18、并找出判定條件之間的從屬關(guān)系、并列關(guān)系、選擇關(guān)系,根據(jù)它們構(gòu)造判定樹。優(yōu)點:更加直觀,易于理解和使用(4)判定表 使用條件當數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件的取值時(該加工的一組動作是由于某一組條件取值的組合而引發(fā)的),使用判定表描述比較適宜。 判定表的組成(四部分)基本條件:各種可能的條件;條件項:各種可能的條件組合;基本動作:所有的操作;動作項:對應(yīng)的條件組合下所選的操作。 二、面向?qū)ο蠓治龇椒嫦驅(qū)ο蠓治龇椒ǎ∣bject-Oriented Analysis,OOA),是在一個系統(tǒng)的開發(fā)過程中進行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭矸治鰡栴}。OOA與結(jié)構(gòu)化分析有較大的區(qū)別。OOA

19、所強調(diào)的是在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對OO方法所需要的素材進行的歸類分析和整理,而不是對管理業(yè)務(wù)現(xiàn)狀和方法的分析。 OOA(面向?qū)ο蟮姆治觯┠P陀?個層次(主題層、對象類層、結(jié)構(gòu)層、屬性層和服務(wù)層)和5個活動(標識對象類、標識結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù))組成。在這種方法中定義了兩種對象類之間的結(jié)構(gòu),一種稱為分類結(jié)構(gòu),一種稱為組裝結(jié)構(gòu)。分類結(jié)構(gòu)就是所謂的一般與特殊的關(guān)系。組裝結(jié)構(gòu)則反映了對象之間的整體與部分的關(guān)系。 OOA在定義屬性的同時,要識別實例連接。實例連接是一個實例與另一個實例的映射關(guān)系。 OOA在定義服務(wù)的同時要識別消息連接。當一個對象需要向另一對象發(fā)送消息時,它們之間就存在消

20、息連接。 OOA 中的5個層次和5個活動繼續(xù)貫穿在OOD(畫向?qū)ο蟮脑O(shè)計)過程中。OOD模型由4個部分組成。它們分別是設(shè)計問題域部分、設(shè)計人機交互部分、設(shè)計任務(wù)管理部分和設(shè)計數(shù)據(jù)管理部分。一、OOA的主要原則。 (1)抽象:從許多事物中舍棄個別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征,就叫作抽象。抽象是形成概念的必須手段。 抽象原則有兩方面的意義:第一,盡管問題域中的事物是很復雜的,但是分析員并不需要了解和描述它們的一切,只需要分析研究其中與系統(tǒng)目標有關(guān)的事物及其本質(zhì)性特征。第二,通過舍棄個體事物在細節(jié)上的差異,抽取其共同特征而得到一批事物的抽象概念。 抽象是面向?qū)ο蠓椒ㄖ惺褂米顬閺V泛的原則

21、。抽象原則包括過程抽象和數(shù)據(jù)抽象兩個方面。 過程抽象是指,任何一個完成確定功能的操作序列,其使用者都可以把它看作一個單一的實體,盡管實際上它可能是由一系列更低級的操作完成的。 數(shù)據(jù)抽象是根據(jù)施加于數(shù)據(jù)之上的操作來定義數(shù)據(jù)類型,并限定數(shù)據(jù)的值只能由這些操作來修改和觀察。數(shù)據(jù)抽象是OOA的核心原則。它強調(diào)把數(shù)據(jù)(屬性)和操作(服務(wù))結(jié)合為一個不可分的系統(tǒng)單位(即對象),對象的外部只需要知道它做什么,而不必知道它如何做。 (2)封裝就是把對象的屬性和服務(wù)結(jié)合為一個不可分的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細節(jié)。 (3)繼承:特殊類的對象擁有的其一般類的全部屬性與服務(wù),稱作特殊類對一般類的繼承。 在OO

22、A中運用繼承原則,就是在每個由一般類和特殊類形成的一般特殊結(jié)構(gòu)中,把一般類的對象實例和所有特殊類的對象實例都共同具有的屬性和服務(wù),一次性地在一般類中進行顯式的定義。在特殊類中不再重復地定義一般類中已定義的東西,但是在語義上,特殊類卻自動地、隱含地擁有它的一般類(以及所有更上層的一般類)中定義的全部屬性和服務(wù)。繼承原則的好處是:使系統(tǒng)模型比較簡練也比較清晰。 (4)分類:就是把具有相同屬性和服務(wù)的對象劃分為一類,用類作為這些對象的抽象描述。分類原則實際上是抽象原則運用于對象描述時的一種表現(xiàn)形式。 (5)聚合:又稱組裝,其原則是:把一個復雜的事物看成若干比較簡單的事物的組裝體,從而簡化對復雜事物的

23、描述。 (6)關(guān)聯(lián):是人類思考問題時經(jīng)常運用的思想方法:通過一個事物聯(lián)想到另外的事物。能使人發(fā)生聯(lián)想的原因是事物之間確實存在著某些聯(lián)系。 (7)消息通信:這一原則要求對象之間只能通過消息進行通信,而不允許在對象之外直接地存取對象內(nèi)部的屬性。通過消息進行通信是由于封裝原則而引起的。在OOA中要求用消息連接表示出對象之間的動態(tài)聯(lián)系。 (8)粒度控制:一般來講,人在面對一個復雜的問題域時,不可能在同一時刻既能縱觀全局,又能洞察秋毫。因此需要控制自己的視野:考慮全局時,注意其大的組成部分,暫時不詳察每一部分的具體的細節(jié);考慮某部分的細節(jié)時則暫時撇開其余的部分。這就是粒度控制原則。 (9)行為分析:現(xiàn)實

24、世界中事物的行為是復雜的。由大量的事物所構(gòu)成的問題域中各種行為往往相互依賴、相互交織。二、面向?qū)ο蠓治霎a(chǎn)生三種分析模型 1、功能模型(即用例模型à作為輸入) 2、對象模型:對用例模型進行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過類圖/對象圖描述對象/對象的屬性/對象間的關(guān)系,是系統(tǒng)的靜態(tài)模型 3、動態(tài)模型:描述系統(tǒng)的動態(tài)行為,通過時序圖/協(xié)作圖描述對象的交互,以揭示對象間如何協(xié)作來完成每個具體的用例,單個對象的狀態(tài)變化/動態(tài)行為可以通過狀態(tài)圖來表達三、OOA的主要優(yōu)點 (1)加強了對問題域和系統(tǒng)責任的理解; (2)改進與分析有關(guān)的各類人員之間的交流; (3)對需求的變化具有較強的適應(yīng)性

25、; (4)支持軟件復用。 (5)貫穿軟件生命周期全過程的一致性。 (6)實用性; (7)有利于用戶參與。四、OOA方法的基本步驟 在用OOA具體地分析一個事物時,大致上遵循如下五個基本步驟: 第一步,確定對象和類。這里所說的對象是對數(shù)據(jù)及其處理方式的抽象,它反映了系統(tǒng)保存和處理現(xiàn)實世界中某些事物的信息的能力。類是多個對象的共同屬性和方法集合的描述,它包括如何在一個類中建立一個新對象的描述。 第二步,確定結(jié)構(gòu)(structure)。結(jié)構(gòu)是指問題域的復雜性和連接關(guān)系。類成員結(jié)構(gòu)反映了泛化-特化關(guān)系,整體-部分結(jié)構(gòu)反映整體和局部之間的關(guān)系。 第三步,確定主題(subject)。主題是指事物的總體概貌

26、和總體分析模型。 第四步,確定屬性(attribute)。屬性就是數(shù)據(jù)元素,可用來描述對象或分類結(jié)構(gòu)的實例,可在圖中給出,并在對象的存儲中指定。 第五步,確定方法(method)。方法是在收到消息后必須進行的一些處理方法:方法要在圖中定義,并在對象的存儲中指定。對于每個對象和結(jié)構(gòu)來說,那些用來增加、修改、刪除和選擇一個方法本身都是隱含的(雖然它們是要在對象的存儲中定義的,但并不在圖上給出),而有些則是顯示的。三、 基本路徑測試法的步驟:第一步:畫出控制流圖流程圖用來描述程序控制結(jié)構(gòu)??蓪⒘鞒虉D映射到一個相應(yīng)的流圖(假設(shè)流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結(jié)點,代

27、表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結(jié)點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結(jié)點,即使該結(jié)點并不代表任何語句(例如:if-else-then結(jié)構(gòu))。由邊和結(jié)點限定的范圍稱為區(qū)域。計算區(qū)域時應(yīng)包括圖外部的范圍。 畫出其程序流程圖和對應(yīng)的控制流圖如下 第二步:計算圈復雜度圈復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方法計算圈復雜度:1.流圖中區(qū)域的數(shù)量對應(yīng)于環(huán)型的復雜性;2.給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點的數(shù)量;3.給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點的數(shù)量。 第三步:導出測試用例根據(jù)上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論