軟體文檔(document)也稱檔案,通常指的是一些記錄的資料 和資料媒體,它具有固定不變的形式,可被人和電腦閱讀。它和 電腦程式共同構成了能完成特定功能的電腦軟體(有人把來源程式也當作文檔的一部分)。我們知道,硬體產品和產品資料在整 個生產過程中都是有形可見的,軟體生產則有很大不同,文檔本 身就是軟體產品。沒有文檔的軟體,不成其為軟體,更談不到軟體 產品。軟體文檔的編製(documentation)在軟體開發工作中佔有突 出的地位和相當的工作量。高效率、高品質地開發、分發、管理和維 護文檔對於轉讓、變更、修正、擴充和使用文檔,對於充分發揮軟 件產品的效益有著重要意義。
軟體開發人員在各個階段中以文檔作為前階段工作成果的體現和後階段工作的依據,這個作用是顯而易見的。軟體開發過程中軟體開發人員需制定一些工作計劃或工作報告,這些計劃和報告都要提供給管理員, 並得到必要的支援。管理員則可通過這些文檔瞭解軟體開發項目安排、進度、資源使用和成果等。軟體開發人員需為使用者瞭解軟體的使用、操作和維護提供詳細的資料,我們稱此為使用者文檔。以上三種文檔構成了軟體文檔的主要部分。
一、使用者文檔:使用者手冊、操作手冊、維護修改建議、軟體需求(規格)說明書
二、開發文檔:軟體需求(規格)說明書、資料要求說明書、概要設計說明書、詳細設計說明書、可行性研究報告、項目開發計劃
三、管理文檔:項目開發計劃、測試計劃、測試報告、開發進度報告、開發總結報告
- 1. 可行性研究報告:說明該軟體開發項目的實現在技術上、經濟上和社會因素上的可行性,評述為了合理地達到開發目標可供選擇的各種可能實施的方案,說明並論證所選定實施方案的理由。
- 2. 項目開發計劃:為軟體項目實施方案制定出具體計劃,應該包括各部分工作的負責人員、開發的進度、開發經費的預算、所需的硬體及軟體資源等。項目開發計劃應提供給管理部門,並作為開發階段評審的參考。
- 3. 軟體需求說明書:也稱軟體規格說明書,其中對所開發軟體的功能、效能、使用者介面及運行環境等作出詳細的說明。它是使用者與開發人員雙方對軟體需求取得共同理解基礎上達成的協議, 也是實施開發工作的基礎。
- 4. 資料要求說明書:該說明書應給出資料邏輯描述和資料擷取的各項要求,為產生和維護系統資料文卷作好準備。
- 5. 概要設計說明書:該說明書是概要設計階段的工作成果,它應說明功能分配、模組劃分、程式的總體結構、輸入輸出以及介面設計、運行設計、資料結構設計和出錯處理設計等,為詳細設計奠定基礎。
- 6. 詳細設計說明書:著重描述每一模組是怎樣實現的,包括實現演算法、邏輯流程等。
- 7. 使用者手冊:本手冊詳細描述軟體的功能、效能和使用者介面,使使用者瞭解如何使用該軟體。
- 8. 操作手冊:本手冊為操作人員提供該軟體各種運行情況的有關知識,特別是操作方法的具體細節。
- 9. 測試計劃:為做好組裝測試和確認測試,需為如何組織測試製定實施計劃。計劃應包括測試的內容、進度、條件、人員、測試案例的選取原則、測試結果允許的偏差範圍等。
- 10. 測試分析報告:測試工作完成以後,應提交測試計劃執行情況的說明。對測試結果加以分析,並提出測試的結論意見。
- 11. 開發進度月報:該月報系軟體人員按月向管理部門提交的項目進展情況報告。報告應包括進度計劃與實際執行情況的比較、階段成果、遇到的問題和解決的辦法以及下個月的打算等。
- 12. 項目開發總結報告:軟體項目開發完成以後,應與項目實施計劃對照,總結實際執行的情況,如進度、成果、資源利用、成本和投入的人力。此外還需對開發工作作出評價,總結出經驗和教訓。
- 13. 維護修改建議:軟體產品投入運行以後,發現了需對其進行修正、更改等問題,應將存在的問題、修改的考慮以及修改的影響估計作詳細的描述,寫成維護修改建議,提交審批。
以上這些文檔是在軟體生存期中,隨著各階段工作的開展適時編製。其中有的僅反映一個階段的工作,有的則需跨越多個階段。下表給出了各個文檔應在軟體生存期中哪個階段編寫。
軟體生存期各階段編製的文檔
|
可行性研究與計劃 |
需求分析 |
設計 |
代碼編寫 |
測試 |
運行與維護 |
可行性研究報告 |
|
|
|
|
|
|
項目開發計劃 |
|
|
|
|
|
|
軟體需求說明 |
|
|
|
|
|
|
資料要求說明 |
|
|
|
|
|
|
概要設計說明 |
|
|
|
|
|
|
詳細設計說明 |
|
|
|
|
|
|
測試計劃 |
|
|
|
|
|
|
使用者手冊 |
|
|
|
|
|
|
操作手冊 |
|
|
|
|
|
|
測試分析報告 |
|
|
|
|
|
|
開發進度月報 |
|
|
|
|
|
|
項目開發總結 |
|
|
|
|
|
|
維護修改建議 |
|
|
|
|
|
|
這些文檔最終要向軟體管理部門,或是向使用者回答以下的問題:
- 1. 哪些需求要被滿足,即回答“做什麼?”
- 2. 所開發的軟體在什麼環境中實現以及所需資訊從哪裡來, 即回答“從何處?”
- 3. 某些開發工作的時間如何安排,即回答“何時幹?”
- 4. 某些開發(或維護)工作打算由“誰來幹?”
- 5. 某些需求是怎麼實現的?
- 6. 為什麼要進行那些軟體開發或維護修改工作?
上述十三個文檔都在一定程度上回答了這六個方面的問題。這可從下表中看到。
|
什麼 |
何處 |
何時 |
誰 |
如何 |
為何 |
可行性研究報告 |
√ |
|
|
|
|
√ |
項目開發計劃 |
√ |
|
√ |
√ |
|
|
軟體需求說明 |
√ |
√ |
|
|
|
|
資料要求說明 |
√ |
√ |
|
|
|
|
概要設計說明 |
|
|
|
|
√ |
|
詳細設計說明 |
|
|
|
|
√ |
|
測試計劃 |
|
|
√ |
√ |
√ |
|
使用者手冊 |
|
|
|
|
√ |
|
操作手冊 |
|
|
|
|
√ |
|
測試分析報告 |
√ |
|
|
|
|
|
開發進度月報 |
√ |
|
√ |
|
|
|
項目開發總結 |
√ |
|
|
|
|
|
維護修改建議 |
√ |
|
|
√ |
|
√
|