主頁 > 教育培訓 > 計算機公共基礎知識 考試重點與經驗分析(4)

計算機公共基礎知識 考試重點與經驗分析(4)


1.3.3  軟件工程基礎
1.軟件定義與軟件特點
軟件的定義是重點掌握的內容。
計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。它具有以下特點:
(1)軟件是一種邏輯實體,而不是物理實體,具有抽象性。
(2)軟件的生產與硬件不同,它沒有明顯的制作過程。
(3)軟件在運行、使用期間不存在磨損、老化問題。
(4)軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致了軟件移植的問題。
(5)軟件復雜性高,成本昂貴。
(6)軟件開發(fā)涉及諸多的社會因素。
2.軟件危機與軟件工程
重點掌握軟件危機與軟件工程的概念,軟件工程產生的背景、研究目標與研究內容。
軟件工程概念的出現源自軟件危機。
軟件危機是泛指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。主要表現在:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質量難以保證、軟件不可維護或維護程度非常低、軟件的成本不斷提高、軟件開發(fā)生產率的提高趕不上硬件的發(fā)展和應用需求的增長等。
為了消除軟件危機,逐步形成了軟件工程的概念,軟件工程是試圖用工程、科學和數學的原理與方法研制、維護計算機軟件的有關技術及管理方法。其主要思想是強調在軟件開發(fā)過程中需要應用工程化原則。
軟件工程具有方法、工具和過程三個要素。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。
軟件工程的目標是,在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產品。
基于軟件工程的目標,軟件工程研究的內容主要包括:軟件開發(fā)技術和軟件工程管理。
為了達到軟件工程目標,在軟件開發(fā)過程中,必須遵循以下基本原則:抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗證性。
3.軟件生命周期
通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。一般包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。
4.軟件開發(fā)工具與軟件開發(fā)環(huán)境
軟件開發(fā)工具和環(huán)境的使用進一步提高了軟件的開發(fā)效率、維護效率和軟件質量。軟件開發(fā)工具的完善和發(fā)展促進了軟件開發(fā)方法的進步和完善,促進了軟件開發(fā)的高速度和高質量。
軟件開發(fā)環(huán)境或稱軟件工程環(huán)境是全面支持軟件開發(fā)全過程的軟件工具集合。這些軟件工具按照一定的方法或模式組合起來,支持軟件生命周期內的各個階段和各項任務的完成。
3.軟件需求規(guī)格說明書
軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。
軟件需求規(guī)格說明書的作用是:
① 便于用戶、開發(fā)人員進行理解和交流。
② 反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據。
③ 作為確認測試和驗收的依據。
軟件需求規(guī)格說明書是作為需求分析的一部分而制定的可交付文檔。該說明把在軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當的檢驗標準以及其他與需要有關的數據。
1.3.5  結構化設計方法
重點掌握軟件設計的概念、過程、軟件設計的基本原理等。
1.軟件設計的基本概念
軟件設計是軟件工程的重要階段,是一個把軟件需求轉換為軟件表示的過程。從工程管理的角度來看,軟件設計分兩步完成(概要設計和詳細設計)。
概要設計將軟件需求轉化為軟件體系結構、確定系統(tǒng)級接口、全局數據結構或數據庫模式。
詳細設計確立每個模塊的實現算法和局部數據結構,用適當方法表示算法和數據結構的細節(jié)。
2.軟件設計的基本原理
(1)抽象
抽象是一種思維工具,就是把事物本質的共同特性提取出來而不考慮其他細節(jié)。
(2)模塊化
模塊是指把一個待開發(fā)的軟件分解成若干小的簡單的部分。每個模塊可以完成一個特定的子功能,各個模塊可以按一定的方法組裝起來成為一個整體,從而實現整個系統(tǒng)的功能。
模塊化是指解決一個復雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干模塊的過程。
(3)信息隱蔽
信息隱蔽是指在一個模塊內包含的信息(過程或數據),對于不需要這些信息的其他模塊來說是不能訪問的。
(4)模塊獨立性
模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,且與其他模塊的聯系最少、接口簡單。
模塊的獨立程度是評價設計好壞的重要度量標準。通常從耦合性和內聚性兩個度量標準衡量軟件的模塊獨立性。
① 內聚性
內聚性是一個模塊內部各個元素間彼此結合的緊密程度的度量,內聚是從功能角度來度量模塊內的聯系。一個模塊的內聚性越強則該模塊的模塊獨立性越強。
在各種內聚性中,內聚性由弱到強的是:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內聚、功能內聚。
② 耦合性
耦合性是模塊間互相連接的緊密程度的度量。一個模塊與其他模塊的耦合性越強則該模塊的模塊獨立性越弱。
在各種耦合性中,耦合度由高到低的順序是:內容耦合、公共耦合、外部耦合、控制耦合、標記耦合、數據耦合、非直接耦合。
總之,耦合性與內聚性是模塊獨立性的兩個定性標準,耦合與內聚是相互關聯的。在程序結構中,各模塊的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
3.概要設計
概要設計的基本任務是:對系統(tǒng)進一步分解,劃分模塊及確定模塊的層次結構。
4.詳細設計
詳細設計的任務,是為軟件結構圖中的每一個模塊確定實現算法和局部數據結構,用某種選定的表達工具表示算法和數據結構的細節(jié)。
常用的工具有程序流程圖、N-S圖、PAD圖、過程設計語言(PDL)等。
1.3.6  軟件測試
重點掌握軟件測試的概念、靜態(tài)測試與動態(tài)測試的概念、白盒測試與黑盒測試的概念以及軟件測試的過程與步驟。
1.軟件測試的概念與分類
軟件測試是保證軟件質量的重要手段,其主要過程涵蓋了整個軟件生命期的過程。軟件測試是為了發(fā)現錯誤而執(zhí)行程序的過程。
從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試;按照功能劃分可以分為白盒測試和黑盒測試方法。
2.靜態(tài)測試與動態(tài)測試
靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。靜態(tài)測試不實際運行軟件,主要通過人工進行。
動態(tài)測試是基于計算機的測試,是為了發(fā)現錯誤而執(zhí)行程序的過程。即根據軟件開發(fā)各階段的規(guī)格說明和程序的內部結構而精心設計一批測試用例,并利用這些測試用例去執(zhí)行程序,以發(fā)現程序錯誤的過程。
3.白盒測試方法與測試用例設計
白盒測試也稱結構測試或邏輯驅動測試。它是根據軟件產品的內部工作過程,檢查內部成分,以確認每種內部操作符合設計規(guī)格要求。
白盒測試的基本原則是:保證所測模塊中每一獨立路徑至少執(zhí)行一次;保證所測模塊所有判斷的每一分支至少執(zhí)行一次;保證所測模塊每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;驗證所有內部數據結構的有效性。
白盒測試常用的方法有邏輯覆蓋、基本路徑測試。
邏輯覆蓋測試泛指一系列以程序內部的邏輯結構為基礎的測試用例設計技術。通常有語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷——條件覆蓋等。
基本路徑測試的思想是,根據軟件過程性描述中的控制流程確定程序的環(huán)路復雜性度量,用此度量定義基本路徑集合,并由此導出一組測試用例對每一條獨立執(zhí)行路徑進行測試。

 

免責聲明:該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務,不承擔相關法律責任。圖片涉及侵權行為,請發(fā)送郵件至85868317@qq.com舉報,一經查實,本站將立刻刪除。返回查查吧首頁,查看更多>>
提示

該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務,不承擔相關法律責任。圖片涉及侵權行為,請發(fā)送郵件至85868317@qq.com舉報,一經查實,本站將立刻刪除。

優(yōu)惠商城

更多