軟件工程基礎
1.軟件工程的基本概念
(1)定義:軟件是程序、數據與相關文檔的集合。軟件包括系統(tǒng)軟件和應用軟件
(2)軟件工程的基本思想是軟件開發(fā)中,應用工程化原則進行軟件開發(fā),并將這個思想貫穿在軟件開發(fā)的整個過程中。
軟件工程的3要素:方法、工具和過程
(3)軟件的生命周期:從軟件定義、開發(fā)、使用、維護到報廢為止的整個過程。
分三階段:設計階段、開發(fā)階段、維護階段
包括:問題定義、可行性分析、需求分析、總體設計、詳細設計、編碼、測試和維護
問題定義:確定開發(fā)的任務
可行性分析:確定問題的可行性
需求分析:對用戶要求進行分析,明確目標系統(tǒng)要做什么
總體設計:把軟件功能轉化為所需要的體系結構,即如何解決問題。
詳細設計:怎樣具體的解決問題
2.結構化分析方法
(1)結構化分析(SA)是面向數據流進行需求分析的方法
SA方法的基本思想正是運用了分解和抽象兩個基本手段,采用:自頂向下,逐步分解的分析思路。
(2)數據流圖
基本圖形符號:
在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發(fā)階段是:需求分析
(3)數據字典
在結構化分析的數據流圖中,利用數據字典對其中的圖形元素進行確切解釋.
3.軟件設計
(1)概要設計(總體設計)
◆包括兩個主要階段:系統(tǒng)設計(確定具體的實現方案)和結構設計(確定每個系統(tǒng)的模塊組成及模塊間的關系)
◆模塊之間聯系越緊密,其耦合性就越強,模塊的獨立性就越差;
一個模塊內個要素聯系越緊密,則它的內聚性就越高。
模塊劃分原則:高內聚低耦合
(2)詳細設計
◆結構化程序設計的要點:采用自頂向下、逐步求精的程序設計方法,一個程序只有一個入口和一個出口。
◆詳細設計的常用工具:程序流程圖、盒圖、PAD和PDL
(3)軟件測試目的
◆軟件測試的目的是盡可能多的發(fā)現程序中的錯誤。
◆軟件測試方法:靜態(tài)測試和動態(tài)測試(黑盒測試法和白盒測試法)
黑盒測試包括:等價分析法、邊值分析法、因果圖法和錯誤推測法
白盒測試法測試的原則之一就是保證所測模塊中的每一個獨立的路徑至少執(zhí)行一次。
(4)程序調試
分為靜態(tài)調試和動態(tài)調試
調試的目的:改正錯誤
經調試后還必須進行再測試
(5)軟件維護
軟件維護就是在軟件已經交付使用以后,為改正錯誤或滿足新的需求而修改軟件的過程。
例題精選:
1. 分析的結果是產生需求規(guī)格說明書。
2. 軟件詳細設計的主要任務是確定每一個模塊的算法和使用的數據結構。
3. 進行單元測試時,常用的方法時采用白盒測試,輔以黑盒測試。
4. 軟件工程的出現是由于軟件危機的出現,人們提出了軟件工程學的原理設計軟件。
5. 數據字典是各類數據描述的集合,通常包括4個部分:數據項、數據流、數據存儲和數據加工。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |