由於需要交軟體開發報告的作業,沒辦法,硬著頭皮寫了。本文主要講講我在寫這篇報告過程中的一些感悟。
在公司,我主要負責技術實現的,也就是標準的碼農。平時我很少考慮文件的重要性,當然,我自己也很少寫文件,一直都覺得寫文件很浪費時間。在仔細地分析了各種軟體開發報告後,我發現我徹底地錯了。程式功能的實現並不難,只要掌握了相關技術,或者說即使不會,網上也有很多參考資料。而文件的編寫卻是真正考察乙個人的能力,它體現了乙個人思考問題解決問題的能力。可以毫不含糊地說,要寫出乙份好的文件比開發乙個好的程式難多了。
乙個小的專案可以不用文件,因為都是自己乙個人開發,所有的思路都在自己腦海中,當然如果有文件會更好,因為寫文件的過程也是思路的整理過程。而現在的專案都不可能乙個人完成,需要與他人配合,那麼如何讓別人理解你的思路並且配合你去完成這個專案呢?這個時候就體現了文件的重要性。
一篇好的文件,應該讓所有跟這個專案的有關的人(包括老闆、專案經理、程式開發人員、測試人員、程式使用者)都能很好地理解自己的想法,所以光有文字是遠遠不夠的,還必須使用uml圖、用例圖等各種模型作為輔助手段。
乙份好的軟體開發報告要完整地體現出來,必須包含軟體開發的各個方面:軟體需求分析、軟體概要設計、軟體詳細設計、軟體資料庫設計、軟體編碼、軟體測試、軟體交付準備、軟體鑑定驗收、培訓等一系列工作。每一部分都有其側重點和主要針對的人群。乙份好的文件能很好地提高我們的工作效率,能讓大家更好地配合,也有利於後期的維護工作。
軟體開發報告主要包含一下幾個方面:
1.軟體的需求分析
首先,開發者應該對軟體應用需求作充分的調研,提交完整的需求分析報告。在需求分析報告中必須描述的基本問題是:功能、效能、強加於實現的設計限制、屬性、外部介面。應當避免把設計或專案需求寫入需求分析報告中。它必須說明由軟體獲得的結果,而不是獲得這些結果的手段。軟體需求可以用若干種方法來表達,如通過輸入、輸出說明;使用代表性的例子;用規範化的模型。開發者應盡可能地使用模型的方式,因為這是表達複雜需求的精確和有效的方法。比如用統一建模語言(uml)來描述需求。
2.軟體的概要設計
在認可的軟體的需求分析基礎上,開發者進行下一步的工作。開發者需要對軟體系統進行概要設計,即系統設計。概要設計需要對軟體系統的設計進行考慮,包括系統的基本處理流程、系統的組織結構、模組劃分、功能分配、介面設計、執行設計、資料結構設計和出錯處理設計等,為軟體的詳細設計提供基礎。
3.軟體的詳細設計
在概要設計的基礎上,開發者需要進行軟體系統的詳細設計。在詳細設計中,描述實現具體模組所涉及到的主要演算法、資料結構、類的層次結構及呼叫關係,需要說明軟體系統各個層次中的每乙個程式(每個模組或子程式)的設計考慮,以便進行編碼和測試。應當保證軟體的需求完全分配給整個軟體。詳細設計應當足夠詳細,能夠根據詳細設計報告進行編碼。
4.軟體的編碼
在軟體編碼階段,開發者根據軟體的詳細設計中對資料結構、演算法分析和模組實現等方面的設計要求,開始具體的編寫程式工作,分別實現各模組的功能,從而實現對目標系統的功能、效能、介面、介面等方面的要求。為了提高程式設計實現的質量,軟體的程式設計必須遵照國家頒布的相關程式設計規範。主要內容包括:規範化的程式內部文件、資料結構的詳細說明、清晰的語句結構、編碼規範。編碼規範的內容包括命名規範、介面規範、提示及幫助資訊規範、熱鍵定義等。在軟體編碼的同時應進行單元測試。
5.軟體的測試
為了盡早發現軟體產品中的錯誤,從而達到提高軟體質量、降低軟體維護的費用,開發者應在編碼過程中對各個模組的程式**進行單元測試,系統整合時進行整合測試,系統整合完成後對整個軟體進行系統測試。單元測試是在軟體開發過程中針對程式模組進行正確性檢驗。整合測試是在單元測試的基礎上,將所有模組按照設計要求組裝成系統或子系統,對模組組裝過程和模組介面進行正確性檢驗。軟體系統測試不僅是檢測軟體的整體行為表現,從另乙個側面看,也是對軟體開發設計的再確認。進行軟體系統測試工作時,測試主要包括介面測試、可用性測試、功能測試、穩定性(強度)測試、效能測試、強壯性(恢復)測試、邏輯性測試、破壞性測試、安全性測試等。開發者針對單元測試,整合測試,系統測試分別制定測試計畫。整合測試需要根據需求分析報告和概要設計製作測試用例,並須經過評審。軟體測試按照測試計畫、需求分析報告的要求進行,最後形成軟體測試報告。
6.軟體的交付準備
在軟體測試證明軟體達到要求後,軟體開發者應提交開發的目標安裝程式、資料庫的資料字典、使用者安裝手冊、使用者使用指南、需求報告、設計報告、測試報告等產物。
7.軟體的鑑定驗收
在軟體開發完成後,為了確保軟體是按照需求分析的要求進行開發的,保證軟體產品的質量,需要對軟體產品進行鑑定驗收。驗收內容應該包括:合法性檢查、文件檢查、軟體一致性檢查、軟體系統測試與測試結果評審等幾項工作。
8.培訓
開發者應詳細列出培訓計畫,包括培訓內容、教材、時間和人員等。
可見,軟體開發文件包含了軟體開發的各個方面,編碼工作只佔其中1/3不到的工作量,而現實生活中,很多開發(公司)人員都忽略了文件的重要性,把80%以上的精力都用在了軟體開發上,結果就是軟體修修改改,想到哪就改哪,改到最後都已經面目全非了,嚴重影響了系統的穩定性,最終導致一系列的問題。
當然,寫出乙份好的文件不僅需要很優秀的專案負責人和開發人員,而且需要大量的時間精力投入。所以,這其中的代價也是很大的。
以上只是個人見解,如有問題,歡迎批評指正。
為什麼需要軟體開發文件
對於軟體工程學科的同學都知道,軟體工程是一門技術含量高設計極其複雜的學科。為了控制好軟體產品質量和規範,就必須用大量的文件約束軟體工程的進度和狀態。浩大的軟體工程對於缺少工作和專案經驗的人來說,必然是摸不著頭腦不知從何開始。為了讓大家能夠快速適應標準的軟體開發過程,今天我為大家粗略的描述開發中需要的...
Android軟體開發需要學什麼
分享一篇學習筆記,是關於安卓軟體開發的內容,此筆記中涉及到的技術點有的可能已略顯陳舊,但因人而異吧,也許對於零基礎的朋友而言是比較全面的。扣丁學堂培訓課程裡面會和大家解析到最新技術點,大家有興趣可以去了解下。話不多說,首先,需要學習哪些android 開發技術 扣丁學堂www.codingke.co...
軟體開發為什麼很難
簡單 問題因果關係非常明顯感知 分類 響應 sense categorise respond 復合 complicated 問題因果關係需要分析感知 分析 響應 sense analyze respond 複雜 complex 問題因果關係僅能夠從回顧中發現探索 感知 響應 probe sense ...