第3章 軟件工程基礎
3.1軟件工程基本概念
1.軟件的定義與特點
(1)定義:軟件是指與計算機系統(tǒng)的操作有關的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔和數(shù)據(jù)。
(2)特點。
•是邏輯實體,有抽象性。
•生產(chǎn)沒有明顯的制作過程。
•運行使用期間不存在磨損、老化問題。
•開發(fā)、運行對計算機系統(tǒng)有依賴性,受計算機系統(tǒng)的限制,導致了軟件移植問題。
•復雜性較高,成本昂貴。
•開發(fā)涉及諸多社會因素。
2.軟件的分類
軟件可分應用軟件、系統(tǒng)軟件和支撐軟件3類。
(1)應用軟件是特定應用領域內(nèi)專用的軟件。
(2)系統(tǒng)軟件居于計算機系統(tǒng)中最靠近硬件的一層,是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件。
(3)支撐軟件介于系統(tǒng)軟件和應用軟件之間,是支援其它軟件的開發(fā)與維護的軟件。
3.軟件危機與軟件工程
軟件危機指在計算機軟件的開發(fā)和維護中遇到的一系列嚴重問題。軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序,包括軟件開發(fā)技術和軟件工程管理。
4.軟件生命周期
軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用的過程稱為軟件生命周期。
在國家標準中,軟件生命周期劃分為8個階段①軟件定義期:包括問題定義、可行性研究和需求分析3個階段。②軟件開發(fā)期:包括概要設計、詳細設計、實現(xiàn)和測試4個階段。③運行維護期:即運行維護階段。
5.軟件工程的原則
軟件工程的原則包括:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。
3.2結構化分析方法
需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求的過程,可概括為:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。
1.常用的分析方法
•結構化分析方法:其實質著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程。
•面向對象分析方法。
2.結構化分析常用工具
結構化分析常用工具包括數(shù)據(jù)流圖、數(shù)字字典(核心方法)、判斷樹和判斷表。
(1)數(shù)據(jù)流圖:即DFD圖,以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,它只反映系統(tǒng)必須完成的邏輯功能。是一種功能模型。
符號名稱作用:
•箭頭代表數(shù)據(jù)流,沿箭頭方向傳送數(shù)據(jù)的通道
•圓或橢圓代表加工,輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出
•雙杠代表存儲文件,表示處理過程中存放各種數(shù)據(jù)文件
•方框代表源和潭,表示系統(tǒng)和環(huán)境的接口
(2)數(shù)據(jù)字典:結構化分析方法的核心。數(shù)據(jù)字典是對所有與系統(tǒng)相關的數(shù)據(jù)元素的一個有組織的列表。以及精確的、嚴格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算結果有共同的理解。
(3)判定樹:使用判定樹進行描述時,應先從問題定義的文字描述中分清判定的條件和判定的結論,根據(jù)描述材料中的連接詞找出判定條件之問的從屬關系、并列關系、選擇關系,根據(jù)它們構造判定樹。
(4)判定表:與判定樹相似,當數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合引發(fā)的,使用判定表比較適宜。
3.軟件需求規(guī)格說明書
軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。
(1)軟件需求規(guī)格說明書的作用:①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據(jù);③作為確認測試和驗收的依據(jù)。
(2)軟件需求規(guī)格說明書的內(nèi)容:①概述;②數(shù)據(jù)描述;③功能描述;④性能描述;⑤參考文獻;⑥附錄。
(3)軟件需求規(guī)格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追蹤性。
3.3結構化設計方法
1.軟件設計的基本概念和方法
軟件沒計是一個把軟件需求轉換為軟件表示的過程。
(1)基本原理:抽象、模塊化、信息隱藏、模塊獨立性(度量標準:耦合性和內(nèi)聚性,高耦合、低內(nèi)聚)。
(2)基本思想:將軟件設計成由相對獨立、單一功能的模塊組成的結構。
2.概要設計
(1)4個任務:設計軟件系統(tǒng)結構、數(shù)據(jù)結構及數(shù)據(jù)庫設計、編寫概要設計文檔、概要設計文檔評審。
(2)面向數(shù)據(jù)流的設計方法:數(shù)據(jù)流圖的信息分為交換流和事物流,結構形式有交換型和事務型。
3.詳細設計的工具
詳細設計的工具包括:
•圖形工具:程序流程圖、N-S、PAD、HIPO。
•表格工具:判定表。
•語言工具:PDL(偽碼)。
3.4軟件測試
1.目的
為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
2.準則
•所有測試應追溯到用戶需求。
•嚴格執(zhí)行測試計劃,排除測試的隨意性。
•充分注意測試中的群集現(xiàn)象。
•程序員應避免檢查自己的程序。
•窮舉測試不可能。
•妥善保存設計計劃、測試用例、出錯統(tǒng)計和最終分析報告。
3.軟件測試技術和方法
軟件測試的方法按是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試,按功能分為白盒測試和黑盒測試。
(1)白盒測試:根據(jù)程序的內(nèi)部邏輯設計測試用例,主要方法有邏輯覆蓋測試、基本路徑測試等。
(2)黑盒測試:根據(jù)規(guī)格說明書的功能來設計測試用例,主要診斷方法有等價劃分法、邊界值分析法、錯誤推測法、因果圖法等,主要用于軟件確認測試。
4.軟件測試的實施
軟件測試是保證軟件質量的重要手段,軟件測試是一個過程,其測試流程是該過程規(guī)定的程序,目的是使軟件測試工作系統(tǒng)化。
軟件測試過程分4個步驟,即單元測試、集成測試、驗收測試和系統(tǒng)測試。
單元測試是對軟件設計的最小單位——模塊(程序單元)進行正確性檢驗測試。
單元測試的目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯誤。
單元測試的依據(jù)是詳細的設計說明書和源程序。
單元測試的技術可以采用靜態(tài)分析和動態(tài)測試。
3.5程序的調(diào)試
(1)任務:診斷和改正程序中的錯誤。
(2)調(diào)試方法:強行排錯法、回溯法和原因排除法。
相關推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |