軟件工程學習總結和體會

來源:瑞文範文網 1.68W

西安交通大學20xx級研究生課程專題作業

軟件工程學習總結和體會

軟 件 工 程 心 得

專 業:

班 級:

學 號:

姓 名:

電 話:

二xxx年十月

體 會

一、 軟件生命週期各階段任務目的和主要方法

在分階段總結之前,首先要明確以下三個問題:

1、什麼是軟件生存週期?

軟件生存週期是指從軟件定義、開發、使用、維護到淘汰的全過程。 主要包括:

(1)問題定義;

(2)可行性研究;

(3)需求分析;

(4)概要設計;

(5)詳細設計;

(6)編碼;

(7)測試;

(8)軟件維護 。

2、軟件生存週期爲什麼劃分成階段?

(1) 任何一個階段的具體任務不僅獨立,而且簡單,便於不同人員分工協作,從而降低整個軟件開發工作的困難程度。

(2) 可以降低每個階段任務的複雜程度,簡化不同階段的聯繫,有利於工程的組織管理,也便於採用良好的技術方法。

(3) 使軟件開發的全過程以一種有條不紊的方式進行,保證軟件的質量,特別是提高了軟件的可維護性。

3、應該怎樣來劃分階段?

(1)每一個階段的任務儘可能獨立;

(2)同一階段內的任務性質儘可能相同;

(3)每一個階段任務的開始和結束有嚴格的標準。

下面分別對各階段進行討論:

1、問題定義

目的是將用戶提出的要求具體化、定量化,任務是確定研製系統的範圍,明確研製的邊界。

方法步驟:

(1)通過調查研究,瞭解系統要求;

(2)需求方與開發方討論確定系統的功能、性能、可靠性、安全保密性等方面的要求,以及費用、進度等方面的要求。

2、可行性研究

可行性研究說明該軟件開發項目的實現在技術上、經濟上和社會條件上的可行性,評述爲合理地達到開發目的可能選擇的各種方案,目標是用最小的代價在儘可能短的時間內確定問題是否能夠解決。

可行性研究的方法是首先需要進一步分析和澄清問題定義;然後分析員導出系統的邏輯模型;最後對未來的行動方針提出建議。

在導出邏輯模型的過程中,具體要根據以下四個方面分析可行性:

(1)經濟可行性:進行成本效益分析,評估項目的開發成本,估算開發成本是否會超過項目預期的全部利潤.分析系統開發對其它產品或利潤的影響。

(2)技術可行性:根據客戶提出的系統功能,性能及實現系統的各項約束條件,從技術的角度研究實現系統的可行性。

(3)法律可行性:研究在系統開發過程中可能涉及的各種合同,侵權,責任以及各種於法律相牴觸的問題。

(4)開發方案的選擇性:提出並評價實現系統的各種看法方案.從中選出一種用於軟件項目開發。

3、需求分析

需求分析是爲了有效解決用戶的需要而進行的一項工程活動,要考慮的問題是功能需求、數據需求、性能需求和接口需求,開發者承擔分析任務,核心是用戶。

軟件項目的失敗大半源於需求分析沒有做好,軟件開發人員首先應該明確用戶的意圖和要求,正確獲取用戶的需求,然後形成一個軟件需求規格說明,它是軟件開發的重要基礎。

需求分析的方法:

(1)需求獲取:獲取客戶需求,客戶泛指某個人或機構部門等,一般方法是調查,包括訪談座談、問卷、跟班和收集資料,需求規約可表達用戶的軟件價值。

(2)需求分析與規格說明:建立需求模型,它是用戶需求的圖解,一些常用的模型有:業務樹圖、用例圖、活動圖。分別用於結構化需求建模、系統業務舉例和反映系統工作流程。

(3)需求驗證:要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實性驗證和可檢驗性驗證。

需求建模的方法:

(1)關聯模型

(2)面向對象模型

(3)原型方法

4、系統設計

此階段主要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計,數據庫設計等,一般分爲概要設計和詳細設計,好的軟件設計將爲軟件程序編寫打下良好的基礎。

概要設計是對需求規格說明書中提供的軟件系統邏輯模型進行進一步的分解,從而建立軟件系統的總體結構和各個子系統間及各個模塊間的關係,定義各子系統接口界面和各模塊的功能描述,並根據設計結果產生概

要設計文檔。 概要設計在早期有模塊化方法、功能分解方法;在

60年代後期提出了面向數據流和麪向數據結構的設計方法;近年來又提出面向對象的設計方法等。

詳細設計過程根據概要設計形成的結果對各個模塊的內部實現進行規劃設計,並根據設計結果產生詳細設計文檔。 詳細設計主要方法是通過採用結構化和麪向對象的方法從視圖、控制、模型三層模型上細化概要設計的各個模塊,並完成僞代碼爲編碼階段做準備。

5、編碼和測試

編碼是將軟件設計的結果轉換成計算機可執行的程序代碼。 主要方法是依據詳細設計文檔實現設計中的算法、功能、接口、數據結構,採用結構化和麪向對象化的方法編寫代碼。

編碼過程中要制定統一,符合標準的編寫規範,以保證程序的可讀性,易維護性,提高程序的運行效率。

軟件設計完成後要經過嚴密的測試,以發現軟件在整個設計過程中存在的問題並加以糾正。整個測試過程分單元測試、組裝測試以及系統測試三個階段進行。

測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨

意性。

6、軟件維護

軟件維護是軟件生命週期中持續時間最長的階段。在軟件開發完成並投入使用後,由於多方面的原因,軟件不能繼續適應用戶的要求。要延續軟件的使用壽命,就必須對軟件進行維護。

軟件的維護包括糾錯性維護和改進性維護兩個方面。

二、 課程主要收穫

《軟件工程》課程強調概念和知識的理解和掌握,側重軟件項目的分析、設計、實現和維護的基本技能。比較注意“點”和“面”的結合,是一門理論性和實踐性都較強的學科。作爲一名已經在IT領域工作十年之後又重返校園的大齡學生,雖然已經不是第一次學習這門課程了,去年也剛在單位取得了信息系統項目管理高級工程師資格,從另一個側面對軟件開發過程有了更深層次的理解。不過溫故而知新,這次仍然選修這門課,我還是得到了一些新的啓示。最大的收穫就是在我看來,軟件工程與其說是一門課程,不如說是一門思想,是一個如何去分析和處理問題的過程,應該說其範疇已經遠遠不止侷限於該門課程,它已經成爲了一個綜合的能夠解決問題的思想集合。

此外,通過對軟件開發過程的重學習,並結合之前在軟件開發管理工作中的經驗,我對自己在軟件開發主要階段管理工作中的不足有了更進一步的認識,總結了相應的管理要點,具體闡述如下:

1、 概要設計

主要任務:系統應該怎樣做,或概括地說,系統應該如何實現 。 本階段特點:將用戶的具體要求轉爲抽象的計算機軟件設計 。 管理要點:

通過分析對比,從多種可能的實現方案和軟件結構中選出最佳方案及最合理的,即:

1 設想供選擇的方案→推薦最佳方案→選取合理的方案

2 功能分解→ 軟件設計結構 → 數據庫設計

3 確定測試要求並確定測試計劃

作爲項目管理者必須從概要設計開始就應該從全局角度開始把握整個系統的進展,並必須從此階段開始,時刻從全局觀的問題來發現問題,解決問題。

2、詳細設計

主要任務:系統應該怎樣具體地做,或概括地說,系統應該如何具體地去實現所有的要求 。

本階段特點:將抽象的計算機軟件設計轉爲形象的,具體的,面向用戶的計算機界面設計 。

管理要點:

本階段尚未涉及具體編寫程序,而是要設計出程序的“藍圖”,所以詳細設計的結果基本上決定了最終的程序代碼的質量。

1 邏輯是否正確

2 性能是否滿足要求

3 是否容易閱讀和理解

熱門標籤