VOOZH about

URL: https://read01.com/6BM576.html

⇱ 軟體工程之軟體生存周期 - 壹讀


Sunday, Apr 12, 2026

軟體工程之軟體生存周期

2015/10/10 來源:CSDN博客

前面幾篇文章是我對軟體工程一些宏觀上的認識,現在和大家分享下我對軟體工程細節上的認識。還是老樣子和大家分享下自己對軟體工程細節的整體認知。

👁 Image
...
闡述
從上面的Mind Map 不難看出,軟體生存周期一般可以分為問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試和運行&維護這八部分構成。我們需要注意的是,軟體生存周期理論主要是服務大型系統的開發,我們要靈活應用軟體生存周期的理論。即如果開發的系統業務流程比較簡單,工作量比較小,我們就可以省去其中的一些過程。
軟體生命階段問題定義
該階段主要是開發人員和需求人員為了討論關於現有系統和目標系統這兩個方面的問題。對與現有系統,我們需要確定現有系統的現狀、出現的問題以及開發的理由;對於目標系統,我們需要確定目標系統的開發運行環境要求和功能要求和人員素質要求。最終開發人員和需求人員達成共識,形成文檔《問題定義報告》。

問題定義報告(參考)

1、引言
1.1 問題
1.2 實現條件
1.3 約束條件
2、管理
2.1 重要發現
2.2 注釋
2.3 建議
2.4 效果
3、方案選擇
3.1 選擇系統配置
3.2 方案選擇的標準
4、系統描述
4.1 縮寫詞
4.2 各子系統的可行性
5、成本效益分析
6、技術風險分析
7、有關法律問題
8、用戶使用可能性
9、其他
可行性研究
可行性研究主要是對問題定義階段分析的問題做進一步細化並且著重經濟效益方面的分析。

Mind Map

👁 Image
...

解讀闡述

可行性研究的一般步驟:
1、複查目標系統期望:在《問題研究報告的基礎上》,開發人員和業務關鍵人員進行進一步交流:確定新系統的規模以及目標、明確係統目標的限制和約束。
2、現有系統研究:研究現有系統的相關文檔,分析現有系統的優缺點,總結新系統的雛形。
3、導出目標系統的高層邏輯模型:從現有系統的物理模型出發,導出現有系統的邏輯模型。參考現有系統的邏輯模型,藉助數據流圖等工具,做出新系統的邏輯模型。
4、重新定義問題:再次對新系統的期望進行確認。
5、制定以及評價方案:著重對每個方案進行成本/效益分析。
6、推薦方案
7、推薦行動方針
8、做出《可行性研究報告》
9、審查
註:在這一過程中,要從經濟可行性、技術可行性、社會環境可行性以及法律可行性等方面對新系統進行可行性分析。期間著重進行經濟可行性分析,即進行成本/效益分析。
需求分析
👁 Image
...

解讀闡述:

軟體需求分析就是分析用戶對軟體的各種要求,包括功能性的和非功能性的。也就是分析用戶希望軟體做什麼事情,完成什麼樣的功能,實現什麼樣的性能。在這一過程中,我們通常會藉助數據流圖輔以數據字典、層次方框圖、E-R圖等工具對軟體需求進行形象的表達。在開發人員和客戶達成一致並對需求進行驗證後,將分析結果形成文檔,即《需求規格說明書》。
概要設計和詳細設計

概要設計和詳細設計就是我們通常所說的軟體設計了。軟體的需求分析解決了軟體要做什麼的問題,而軟體的設計則是進一步解決軟體怎麼做的問題。其中概要設計主要是為了解決軟體的總體框架和資料庫設計的問題,而軟體的詳細設計主要是為了解決具體的軟體編碼以及用戶界面的設計問題。

👁 Image
...
從圖上可以看出,軟體的概要設計主要是為了解決軟體的總體框架搭建問題以及軟體所用資料庫的設計。在這一過程中,我們主要是採用面向對象的設計思想,通過模塊化的設計方法設計出一個個內聚性和耦合性良好的模塊實現軟體的功能設計。通常我們會藉助層次方框圖、IPO圖及HIPO圖對數據的層次結構、數據流的輸入輸出處理以及系統結構和模塊內部處理功能進行描述。最終,將以上成果整理成文檔《概要設計說明書》。
👁 Image
...

解讀闡述:

詳細設計的主要任務有兩點,其一是確定軟體結構圖(SC圖或者HC圖)中的模塊使用的算法和塊內數據結構;其二是設計用戶界面。在確定模塊算法和數據結構時,我們要遵循以下幾點原則:儘量不用GOTO語句以確保程序結構的獨立性;使用單進單出的控制結構;力爭結構的簡潔;自頂向下、逐步求精。在該過程中,我們常用程序流程圖、盒圖(N-S)和PAD圖等圖形工具對數據的邏輯進行表達,並使用偽代碼和PDL語言對程序內部的代碼進行邏輯性表達。在我們設計用戶界面時,要先對用戶進行科學合理的分析,確定用戶的知識水平和操作能力。並在易控制、少記憶和一致性的理論指導下對用戶界面進行設計,力求界面的簡潔方便美觀。最終將結果整理成文檔《詳細設計說明書》
👁 Image
...

解讀闡述:

在沒有接觸軟工時,總以為一個軟體的開發的重頭戲在於編碼。學習過軟體工程的視頻後才發現,編碼在一個軟體開發的過程中只占很小的一部分比重。軟體開發更多的精力放在了軟體的需求分析設計以及軟體的維護和調試這兩方面。但是這不並是不代表著編碼就可以不被開發人員重視了。在進行編碼工作時,我們首先要對程序語言有一個比較全面的認識,了解儘可能多的程序語言以為軟體開發提供更多的選擇性。選擇程序語言時,我們不要追求使用最新最複雜看起來最高大上的語言,而是要選擇最適合多開發軟體的語言。而在編寫代碼時,我們要實現原始碼的文檔化,對其中使用到的數據類型、控制項以及語句結構進行統一的說明;對那些看起來性能很好但是對程序穩定性影響較大的語句,儘量少使用或者不適用。最後,將所有的注意事項整理成文檔《編碼規範說明》。
👁 Image
...
在學習軟體測試的內容時,自己明白了一些道理:做人,切忌自以為是,事情也許並不是你想像的那樣;做人,要學會先傾聽,然後再去學習說話。開始的時候,由測試的字面意思認為軟體測試就是為了向客戶證明自己的軟體是可以流暢完美的運行的。看了軟工視頻後才發現並不是自己想的那樣。軟體測試是在一定方法的指導下,運用一定的技術對軟體進行試驗,從而發現其中存在的問題,並且估算出那些沒有被發現的問題的情況。一般來說,大家現在比較提倡儘早開始對軟體的不斷的測試,以儘早發現問題並將解決問題的代價控制在儘可能小的範圍內。新進行單元測試然後進行集成測試,清楚的掌握軟體模塊的運行情況以及各功能模塊之間的銜接是否流暢。而現在經常使用到的軟體測試方法主要有黑盒測試、白盒測試、靜態分析、動態測試、代碼走查等方法。在測試過程中,我們要重點測試各模塊的接口、數據結構、重要執行路徑以及邊界值等方面。最終將整個測試流暢和測試調試結果整理歸檔,形成《測試報告》。
運行&維護
👁 Image
...

解讀闡述:

軟體的運行和維護是相濡以沫的吧,畢竟他倆誰也離不開誰。運行的話,咱們就不用說了,咱們來看看軟體的維護是怎麼樣的。軟體的維護的唯一目的就是軟體更好的運行。聽起來很像唯美的愛情……軟體的維護主要可以分為改正性、完善性、適應性和預防性這四種類型,他們的使命依次是:消除開發環境下沒有別發現的軟體的錯誤;滿足用戶對軟體功能以及性能的修改甚至擴增腰求;使軟體適應硬體設備、作業系統、數據環境、網絡環境(比方說網速啦~~~)和業務環境等;完善軟體的配置管理、設計可擴充的體系結構等。實際上軟體維護受軟體的需求分析、軟體設計以及軟體編碼的影響非常大,可以說如果軟體開發過程中這是哪部分做的不規範,那麼後續的軟體維護工作將難如登天甚至無法進行。所以說我們需要在軟體的生存周期各個階段都要專注認真,切忌大意失荊州,從而使軟體的可維護性滿足我們對軟體維護的需要。當然了,我們要時刻完善軟體維護的文檔《軟體維護報告》。Last but not least,注意啦注意啦,各位想當老闆的童鞋注意啦~~~~~~通常情況下,軟體維護階段投入的人力、時間和財力是對多的哦,嘿嘿當老闆的你一定要注意這個提高利潤的關鍵點啊。
到此,我對軟體工程視頻的總結算是告一段落了。當然這並不是結束,這只是個開始。我相信在以後不斷的學習下,我對軟體工程的理解會逐漸的加深,我的能力一定會像老師說的那樣達到那種專業文章寫的農民都能看懂的教授境界~嘿嘿再也不會寫出這種自己都感覺天書一樣的東西了。
最後,感謝您的寶貴時間~~~~
您可能感興趣
免責聲明:本文內容來源于CSDN博客,文章觀點不代表壹讀立場,如若侵犯到您的權益,或涉不實謠言,敬請向我們提出檢舉
最新文章 / 服務條款 / 私隱保護 / DMCA / 聯絡我們

壹讀/READ01.COM