1. 軟件的定義:軟件是程序、數據及開發、使用和維護程序需要的所有文檔的完整集合。
2.軟件的分類:
- 按照應用場景:系統/應用軟件
- 按照功能:服務類/維護類/操作管理類軟件
3. 軟件危機:計算機軟件在開發和維護過程中遇到的一系列的嚴重的問題
4. 軟件工程的定義:
5. 軟件生存周期:
是指某一項軟件項目從被提出並著手實現開始,知道該軟件報廢或停止使用為止所經歷的時間。
6. 模型:
是為瞭理解事物而對事物做出的一種抽象。
7. 可行性研究目的:
用最小的代價在盡可能短時間內確定問題能否得到解決;任務完成可行性研究報告;
方面:
- 技術可行性(當前的技術研究是否支持)
- 經濟可行性(預算,成本,有形無形)
- 操作可行性
- 法律可行性
8. 系統流程圖:
是描述物理系統的工具。數據流圖是系統邏輯模型。
9. 成本效益分析通過貨幣的時間價值、投資回報期、純收入三個方面進行分析。(是從經濟角度評價開發項目是否可行)
10. 需求分析
確定系統必須完成哪些工作
具體任務:
- 確定對系統的綜合需求
- 分析系統的數據需求
- 建立軟件的邏輯模型
- 編寫軟件需求規格說明書
- 需求分析評審。
常用方法:
- 功能分解方法
- 結構化分析方法
- 信息建模方法
- 面向對象方法
11. 結構化分析方法:
- 數據流圖
- 數據字典
- 結構化語言
- 判定樹和判定表
- 運用自頂向下逐層分解的分析策略
12. 數據字典:
是關於數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。給人提供數據描述,對數據存儲和加工等名字命名。
13. 數據流圖作用
作為交流信息的工具、作為分析和設計的工具
14. 軟件結構中的一些概念:
深度:是指軟件結構中模塊的層次數;
寬度:是指同一層次中最大的模塊個數;
扇出:一個模塊直接調用的模塊數目;
扇入:有多少個上級模塊直接調用它。
如果一個模塊被 n 個模塊調用,其中直接的上級模塊的個數是 m 個( m<=n )那麼該模塊的扇入數是 m 個。
15. 模塊:
是軟件的結構基礎,是軟件元素,是能夠單獨命名、獨立完成一定功能的程序語句的集合。
特征:抽象,信息隱蔽。
模塊化:是使得軟件能夠對付復雜問題所應具備的屬性。
16. 軟件模塊獨立性的度量標準:耦合和內聚
耦合:衡量不同模塊彼此間互相依賴的緊密程度。
分類:a.無直接耦合,b.數據耦合,c.標記耦合,d.控制耦合,e.公共環境耦合,f.內容耦合。
內聚:模塊內部各個元素之間的聯系
分類:a.偶然內聚,b.邏輯內聚,c.時間內聚,d.通信內聚,e.順序內聚,f.功能內聚
17. 軟件結構設計的圖形工具:軟件結構圖、層次圖、hipo圖。
結構化設計方法:數據流圖
詳細設計工具:圖形(程序流程圖、盒圖NS、pad圖)、表格、語言(過程設計語言pdl)
18. 人機界面設計問題:系統響應時間、用戶幫助設施、出錯信息處理、命令交互
19. 程序設計風格方面:
- 程序內部文檔(標識符的選取、程序的註解:序言性,功能性、程序的佈局)
- 數據說明
- 語句構造
- 輸入輸出
- 效率
20. 軟件測試方法:
- 動態測試(黑盒、白盒)
- 靜態測試(人工測試、計算機輔助靜態分析)
21. 白盒技術:
- 邏輯覆蓋(a.語句覆蓋,b.判定覆蓋,c.條件覆蓋,d.判定條件覆蓋,e.條件組合覆蓋,f.路徑覆蓋)
- 循環覆蓋(單循環和嵌套循環)
- 基本路徑測試
22. 黑盒技術:
- 等價類劃分
- 邊界值分析
- 錯誤推測
- 因果圖
23. 軟件測試過程:
單元測試–>集成測試–>確認測試–>系統測試
單元測試:軟件基本組成單元的測試
集成測試:用於組裝軟件的一種系統化的技術,要把在模塊按照設計要求組裝起來的同時進行測試,用以發現和接口相聯系的問題。(非漸增式/漸增式測試)
確認測試:檢查所開發的軟件是否滿足需求規格說明書中所確定的功能和性能需求。
21. 調試:
測試發現錯誤之後排除錯誤的過程。
測試的目的是為瞭找出軟件中存在的錯誤,調試的目的是為瞭存在的錯誤。
常用的調試技術:簡單的調試技術、消去原因法(歸納法、演繹法)
22. 軟件維護:
在軟件已經交付使用之後,為瞭改正錯誤或滿足新的需要而修改軟件的過程.
分類:改正性、適應性、完善性、預防性維護
23. 軟件可維護性特性:
可理解性/測試性/修改性/移植性/使用可靠性、效率
維護的副作用:修改代碼/數據/文檔的副作用
軟件維護工作量模型:M=P+k*e^(C-D)
適應性維護:
為瞭使應用軟件適應計算機環境的變化而修改軟件的過程稱為適應性維護。
24. 面向對象分析方法的概念:
類:對具有相同數據和相同操作的一組相似對象的定義。
對象:是問題域中客觀存在的事物的抽象,是一組屬性和在這些屬性上的操作的封裝體。
消息:消息是面向對象系統中對象之間交互的途徑,是向另外一個對象發出的服務請求。
封裝:是指把對象的屬性和操作結合成一個獨立的系統單位,並盡可能隱藏對象的內部細節。
26. 類和類關系:繼承、多態性、關聯、依賴、實現、聚集和組合
面向對象開發方法:Booch、Coad、OMT、OOSE
27. UML:
一種編制軟件藍圖的標志化語言
RUP:初始、細化、構造、交付階段
28. 軟件工程的四種模型:用例模型、對象模型、動態模型、物理模型
對象模型是必須建立的,是核心模型之一,用例模型指明系統應該做什麼
29. 用例之間的關系:包含、使用、擴展和泛化(包含和擴展)
30. 投資回收期:
就是使累計的經濟效果等於 最初投資費用 所需要的時間。
31. 結構化分析方法:
就是面向數據流自頂向下、逐步求精進行需求分析的方法。
32. 軟件的生命周期:一個軟件從定義、開發、使用和維護,直到最終被廢棄所經歷的一系列時期。
33. 投資回收期:就是使累計的經濟效果等於最初投資的需要的時間。
34. 結構化分析方法:就是面向數據流自頂向下逐步求精進行需求分析的方法。
35. 事務流:
數據沿輸入通路到達一個處理,這個處理根據輸入數據的類型在若幹個動作序列中選出一個來執行。這類數據流應該劃分為一類特殊的數據流,稱為事務流。
36. 事件:
是某個特定時刻所發生的事情,它是對引起對象從一種狀態轉換到另一種狀態的現實世界中的事件的抽象。
37. 函數重載:
指在同一作用域內的若幹個參數特征不同的函數可以使用相同的函數名字。
38. 存根模塊:
用以模擬被測模塊運行過程中所調用模塊或是被測模塊下層模塊的替代程序。
38. 存根模塊:
用以模擬被測模塊運行過程中所調用模塊或是被測模塊下層模塊的替代程序。
39. 變換流:
信息沿輸入通道進入系統,同時由外部形式變換成內部形式,進入系統的信息通過變換中心,經加工處理以後再沿輸出通路變換成外部形式離開軟件系統,當數據流圖具有這些特征時,這種信息流就叫變換流。
40. 多態性:
子類對象可以像父類對象那樣使用,同樣的消息既可以發送給父類對象也可以發送給子類對象。
41. 驅動模塊:
用以模擬被測模塊的上級調用模埠,或向被測模塊輸以數據輸出一些必要信息,調用被測模塊。
42. 可靠性的兩個指標是 成功地運行的概率 和 平均無故障時間。
43. 成本估算方法
就方法論而言,有兩種基本的成本估算方法:自頂向下和自底向上。 自頂向下法是對整個工程項目的總開發時間和總工作量做出估算,然後將它們按階段、步驟和任務進行分配。 自底向上法則正好相反,先分別估算各個任務所需要的工作量和開發時間,再相加,從而得到總的工作量和總的開發時間。這兩種方法都要求采用某種方法做出估算。 有許多估算方法可以利用,大致劃分為三類:專傢估算法、類推估算法、算式估算法
先分別估算各個任務所需要的工作量和開發時間,再相加,從而得到總的工作量和總的開發時間 這種成本估算方法稱為 自底向上
44. 軟件的風險分析可包括 風險識別、風險預測和風險駕馭(或風險管理)等3項活動。
45. 軟件著作權登記的3種主要類型:
- 著作權登記
- 著作權延續登記
- 權利轉移備案登記
46. 軟件工程管理的主要內容有:
- 項目經費管理
- 軟件質量管理
- 項目進度管理
- 人員管理
47. 模塊的內聚性
順序內聚指一個模塊中各個處理元素都密切相關於同一功能且必須 順序執行 ,前一功能元素的輸出就是下一功能元素的輸入。
48. 曾被譽為“程序設計方法的革命”的 結構化程序設計,使程序設計從主要依賴於程序員個人的自由活動變成為有章可循的一門科學。
49. 在單元測試時,需要為被測模塊設計 測試用例
50. 人們常用硬件可靠性的定量度量方法來度量軟件的可靠性和可用性,常用的度量軟件可將待開發的軟件細化,分別估算每一個子任務所需要的開發工作量,然後將它們加起來,