軟件工程學科發展到今天, 已經有了很多方法和規範, 學之不盡。 無論是什麼好方法, 貴在理解與靈活運用, 而不可當成靈丹妙藥, 不象“吃了腦黃金或腦白金, 就能使一億人先聰明起來”。
1.軟件
軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序,數據及其相關文檔的完整集合。
程序是按時限設計的功能和性能要求執行的指令序列。
數據是使程序能正常操縱信息的數據結構。
文檔是與程序開發,維護和使用有關的圖文材料。
2.軟件的特點:
(1)它是一種邏輯實體,不是具體點的物理實體,因而它具有抽象性。
(2)它的生產與硬件不同,在他的開發過程中沒有明顯的製造過程。
(3)它的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。
(4)它的開發和運行受到計算機系統的限制,對計算機系統有着不同程度的依賴性。
(5)它的開發至今尚未完全擺脫手工藝的開發方式。
(6)它本身是複雜的,實際問題和程序邏輯結構的複雜性。
(7)成本相當昂貴。
3.軟件的分類:
按功能劃分:系統軟件、
支撐軟件:
- 文本編輯程序
- 文件格式化程序
- 磁盤向磁帶向數據傳輸的程序
- 程序庫系統
- 支持需求分析、設計、實現、測試和支持管理的軟件
應用軟件:
- 商業數據處理軟件
- 工程與科學計算軟件
- 計算機輔助設計/製造軟件
- 系統仿真軟件
- 智能產品嵌入軟件
- 醫療、製藥軟件
- 事務管理、辦公自動化軟件
- 計算機輔助教學軟件
按規模劃分:微型、小型、中型、大型、甚大型、極大型;
按工作方式劃分:實時處理軟件、分時軟件、交互式軟件、批處理軟件;
按服務對象劃分:項目軟件、產品軟件;
按使用頻度劃分:一次使用、頻繁使用;
按失效影響劃分:高可靠性軟件、一般可靠性軟件。
4.軟件的發展階段:
(1)程序設計階段:50-60年代 彙編語言
(2)程序系統階段:60-70年代 程序加說明
(3)軟件工程階段:70年代後 規範化
5.軟件危機:
開發過程中遇到到的一系列嚴重的問題
(1)軟件危機的表現產品不符合用戶的實際需要。
軟件開發生產率提高的速度遠遠不能滿足客觀需要,軟件的生產率遠遠低於硬件生產率和計算機應用的增長,使人們不能充分利用現代計算機硬件提供的巨大潛力。
軟件產品的質量差。
對軟件開發成本和進度的估計常常不準確軟件的可維護性差。
軟件文檔資料通常既不完整也不合格
軟件的價格昂貴,軟件成本在計算機系統總成本中所佔的比例逐年上升
(2)產生軟件危機的原因
軟件不同於硬件,它是計算機系統中的邏輯部件而不是物理部件。在寫出程序代碼並在計算機上試運之前,很難檢驗開發的正確性,而且軟件開發的也較難評價。軟件不同於一般程序,它的一個顯著特點是規模龐大。
雖然軟件本身獨有的特點確實給開發和維護帶來些客觀困難,但是人們在開發和使用計算機系統的長期實踐中,也確實積累和總結出了許多成功的經驗
開發和管理人員只重視開發而輕視問題的定義使軟件產品無法滿足用戶的需求
軟件管理技術不能滿足現代軟件開發的需要,沒有統一的軟件質量管理規範。
在軟件的開發與維護關係問題上存在錯誤的概念。
6.過程
(1)規格說明:規定軟件的功能及運行的限制;
(2)軟件開發:生產滿足規格說明的軟件;
(3)軟件確認:確認軟件能夠完成客戶提出的要求;
(4)軟件維護:後期維護。
7.特性:
易理解性、可見性、可支持性、可接受性、可靠性、健壯性(安全性)、可維護性、速度。
8.生存期:
從孕育、誕生、成長、成熟、衰亡的生存過程。
9.生存期的步驟:
(1)制定計劃:確定開發軟件系統總目標、給出功能、性能、可靠性及接口的要求、完成可行性研究
(2)需求分析和定義:對需求進行分析並給出詳細定義、編寫軟件需求說明書
(3)軟件設計、概要設計 劃分模塊
(4)軟件編寫
(5)軟件測試:靜態測試/動態測試、單元測試/組裝測試
(6)運行維護