首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
⑦內容耦合:內容耦合指兩上模塊之間出現了下列情況之一:
一個模塊訪問另一個模塊的內部數據;
一個模塊不通過正常入口轉到另一模塊的內部;
兩個模塊有一部分程序代碼重疊;
一個模塊有多個入口。
(2)內聚
模塊的內聚種類通常可分成7種,下面按內聚度從低到高的次序依次作介紹。
①偶然內聚:如果一個模塊完成一組任務,這組任務彼此間即使有關系,其關系也是很松散的,這個模塊屬于偶然內聚。
②邏輯內聚:如果一個模塊完成邏輯上相關的一組任務,這個模塊是邏輯內聚的。例如,產生與類型無關的全部輸出的模塊。
③瞬時內聚(temporal cohesion):如果一個模塊所包含的任務必須在同一時間間隔內執行,這個模塊屬于瞬時內聚。例如初始化模塊。
④過程內聚:如果一個模塊的處理元素是相關的,而且必須按特定的次序執行,這個模塊屬于過程內聚。
⑤通信內聚:如果一個模塊的所有處理元素集中在一個數據結構的區域上,該模塊屬于通信內聚。例如,一個模塊中的所有處理元素使用同一輸入數據。
⑥順序內聚:如果一個模塊的處理元素是相關的,而且必須順序執行,這個模塊屬于順序內聚。
⑦功能內聚:如果一個模塊完成一個單一的功能,模塊中的各部分在此目標下協同工作,而且都是為完成這一功能而不可缺少的,那么這個模塊是功能內聚的。
5.模塊分解時應遵循的準則
(1)滿足信息隱蔽原則
(2)盡量使得模塊的內聚度高,模塊間的耦合度低。
(3)模塊的大小適中(通常一個模塊以50~100個語句行為適宜)。
(4)模塊的調用深度不宜過大。一個模塊A可以調用另一模塊B,模塊B還可調用模塊C,稱模塊A直接調用模塊B,模塊A間接調用模塊C,被間接調用的模塊還可調其他模塊,這樣可形成一棵調用樹,我們把以某個模塊為根結點的調用樹的深度稱為該模塊的調用深度。
(5)模塊的扇入應盡量大,扇出不宜過大。一個模塊的扇入是指直接調用該模塊的上級模塊個數。一個模塊的扇出是指該模塊直接調用的下級模塊的個數。扇入大表示模塊的復用程序高,扇出大表示模塊的復雜度高。
(6)設計單入口和單出口的模塊。
(7)模塊的作用域應在控制域之內。模塊的作用域是指受該模塊內一個判定影響的所在模塊的集合。模塊的控制域是指該模塊本身以及被該模塊直接或間接調用的所有模塊的集合。在設計時,作用域應是控制域的子集,作用域最好是做出判定的模塊本身以及它的直屬下級模塊(直接調用的模塊)。
(8)模塊的功能應是可以預測的,功能可預測是指對相同的輸入數據能產生相同的輸出。
三、軟件測試
在軟件開發的一列活動中,為了保證軟件的可靠性,人們研究并使用了很多方法進行分析、設計及編碼實現。但是由于軟件產品本身無形態,它是復雜的、知識高度密集的邏輯產品,其中不可能沒有錯誤。物理產品在出廠前都要進行嚴格的檢驗,軟件產品也不例外。軟件開發總伴隨著軟件質量保證的活動,而軟件測試是主要活動之一。軟件測試代表了需求分析、設計、編碼的最終復審。測試是一項很艱苦的工作,其工作量約占軟件開發總工作量的40%以上,特別對一些關系到人的生命安全的軟件,共測試成本可能相當于開發階段總成本的3~5倍。
(一) 測試的基本概念
1.測試的目的
軟件測試的目的是盡可能多地發現軟件產品(主要是指程序)中的錯誤和缺陷。明確測試的目的是一件非常重要的事,因為在現實世界中對測試工作存在著許多模糊或者錯誤的看法,這些看法嚴重影響著測試工作的順利進行。有人認為測試是為了證明程序是正確的,也就是說程序不再有錯誤,事實證明這是不現實的。因為要通過測試來發現程序中的所有錯誤就要窮舉所有可能的輸入數據,檢查它們是否產生正確的結果。例如,一個需要3個16位字長的整型輸入數據的程序,輸入數據的所有組合情況大約有3×10 14 種,若每組數據的測試時間為1ms,那么即使一年365天,每天24小時地測試,也大約需要1萬年的時間。
2.測試用例
要進行測試,除了要有測試數據(或稱輸入數據)外,還應同時給出該組測試數據應該得以怎樣的輸出結果,我們稱它為預期結果。在測試時將實際的輸出結果與預期結果比較,若不同則表示發現了錯誤,因此測試用例是由測試數據和預期結果構成的。為了發現程序中的錯誤,應竭力設計能暴露錯誤的測試用例。一個好的測試用例是極有可能發現迄今為止尚未發現的錯誤的測試用例。一次成功的測試是發現了至今為止尚未發現的錯誤的測試。
希望與更多計算機等級考試的網友交流,請進入計算機等級考試論壇
更多信息請訪問:考試吧計算機等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |