? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?軟件工程
一、定義:軟件工程是應用計算機科學,數學,邏輯學及管理科學等原理,開發軟件的工程。
1、可認為軟件=程序+數據+文檔
二、軟件工程一般包含4個方面:
1、軟件規格說明--規定軟件的功能及其運行限制
2、軟件開發--開發滿足規格說明的軟件
3、軟件確認--確認是否滿足用戶的需求
4、軟件演進--不斷改進用戶的需求
三、從開發的角度看:
用適當的資源,為開發軟件進行的一組開發活動,活動結束時輸入(即用戶的需求)轉化為輸出(最終符合用戶需求的產品)。
四、軟件工程的七條基本原理:
1、用分段的生命周期計劃嚴格管理
2、堅持進行階段評審(提早發現錯誤)
3、實行嚴格的產品控制(采用基準配置管理--當需求變動時,其他各階段的代碼隨之改動)
4、采納現代程序設計技術(第四代語言的出現,采用先進的技術提高軟件開發的效率)
5、結果應能清楚地審查(明確規定開發小組的責任和產品標準)
6、開發小組的人員少而精
7、承認不斷改進軟件工程實踐的必要性(不斷進行總結和問題報告統計)
五、軟件開發方法
1、結構化方法--即面向功能或數據流的軟件開發(使用數據流程圖,數據字典等工具,主要觀點是采用自頂向下,逐步求精,模塊化的程序設計方法)
2、面向數據結構的軟件開發--輸出數據結構,到處程序框架。
3、面向問題的分析法--使用PAD圖(是一種二維樹形結構圖,適用于中小型問題)
4、原型化方法
六、軟件開發流程:
1、需求分析
A、向用戶初步了解需求(用word列出開發的模塊,每個大功能模塊下有哪些小功能模塊)
B、深入了解和分析需求(會列出相關的界面和界面功能)
C、向用戶再次確認需求
軟件設計
A、開發者對系統進行概要設計(基本處理流程,組織結構,模塊劃分,功能分配,接口實際,數據結構設計等)
B、在概要設計基礎上進行詳細設計(主要算法,數據結構,累的層次結構,調用關系,需要說明每個模塊和子程序),保證需求完全分配給整個軟件,完成《軟件系統詳細設計報告》
2、編碼(應在整個項目時間中占1/3到1/2的時間)
根據報告分別實現各模塊的功能,從而實現對目標系統的功能、性能、接口、界面等方面的要求。
3、測試
多種方式測試,要跟蹤軟件的運營狀況持續修補和升級直到淘汰為止。
4、軟件交付
開發者應向用戶提交開發的目標安裝程序、數據庫的數據字典、《安裝手冊》、《用戶使用指南》、需求報告、設計報告、測試報告、等雙方約定的產物。
5、驗收
查明項目的哪些工作已將完成,完成到生么程度
6、維護
修改后要填寫《程序修改登記表》,并在《程序變更通知書》上寫明新舊程序的不同之處。
六、軟件設計方法
1、輕量級:極限流程,敏捷流程
2、重量級方法:ISO9000,CMM,,RUP(重量級方法中產生大量的正式文檔)
七、軟件需求
1、業務需求:通常來自項目投資人,購買產品的客戶等;產生文檔為項目輪廓圖或市場需求文檔
2、用戶需求:用戶需求描述了用戶能使用系統來做什么
3、功能需求:描述開發人員需要實現什么,或規定開發人員不許再產品中實現的軟件功能。