1、系統(tǒng)需求說(shuō)明 說(shuō)明系統(tǒng)是一個(gè)什么樣的系統(tǒng),用市場(chǎng)上現(xiàn)有的系統(tǒng)來(lái)類(lèi)比,用客戶需要一個(gè)什么樣的系統(tǒng)進(jìn)行說(shuō)明,力求完整。并對(duì)系統(tǒng)的發(fā)展可擴(kuò)充性進(jìn)行描述。說(shuō)明與現(xiàn)有的系統(tǒng)有什么相同什么不同,說(shuō)明未來(lái)系統(tǒng)的發(fā)展方面以及可移值性等能預(yù)見(jiàn)的事情。
2、系統(tǒng)資源說(shuō)明 對(duì)系統(tǒng)所需要的軟件、硬件資源進(jìn)行說(shuō)明。描述系統(tǒng)所需要的所有的TCO成本。包括人員、時(shí)間、設(shè)備、系統(tǒng)、一次性投入資金、持續(xù)性投入資金這樣的所有資源。
3、系統(tǒng)可行性分析 對(duì)系統(tǒng)的實(shí)施中的資源進(jìn)行分析,說(shuō)明投入的合理性和必然性,對(duì)其中的所有不可預(yù)見(jiàn)性的投入進(jìn)行合理的量化說(shuō)明,來(lái)說(shuō)明系統(tǒng)的實(shí)施的可行性。
以上為系統(tǒng)分析說(shuō)明書(shū)中應(yīng)出現(xiàn)的前三種文檔。
作為開(kāi)發(fā)前期的工作,還應(yīng)該包括:總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)。
總體設(shè)計(jì)這個(gè)階段必須回答的關(guān)鍵問(wèn)題:概括地說(shuō),應(yīng)該如何解決這個(gè)問(wèn)題?
首先,應(yīng)該考慮幾種可能的解決方案。例如,目標(biāo)系統(tǒng)的一些主要功能是用計(jì)算機(jī)自動(dòng)完成還是用人工完成;如果使用計(jì)算機(jī),那么是使用批處理方式還是人機(jī)交互方式;信息存儲(chǔ)使用傳統(tǒng)的文件系統(tǒng)還是數(shù)據(jù)庫(kù)。
通常至少應(yīng)該考慮下述幾類(lèi)可能的方案:
系統(tǒng)只能完成最必要的工作,不能多做一點(diǎn)額外的工作。
這樣的系統(tǒng)不僅能夠很好地完成預(yù)定的任務(wù),使用起來(lái)很方便,而且可能還具有用戶沒(méi)有具體指定的某些功能和特點(diǎn)。雖然用戶沒(méi)有提出這些具體要求,但是系統(tǒng)分析員根據(jù)自己的知識(shí)和經(jīng)驗(yàn)斷定,這些附加的能力在實(shí)踐中將證明是很有價(jià)值的。
這樣的系統(tǒng)具有用戶可能希望有的所有功能和特點(diǎn)。系統(tǒng)分析員應(yīng)該使用系統(tǒng)流程圖或其他工具描述每種可能的系統(tǒng),估計(jì)每種方案的成本和效益,還應(yīng)該在充分權(quán)衡各種方案的利弊的基礎(chǔ)上,推薦一個(gè)較好的系統(tǒng),并且制定實(shí)現(xiàn)所推薦的系統(tǒng)的詳細(xì)計(jì)劃。如果用戶接受分析員推薦的系統(tǒng),則可以著手完成本階段的另一項(xiàng)主要工作。
結(jié)構(gòu)設(shè)計(jì)的一條基本原理就是程序應(yīng)該模塊化,也就是一個(gè)大程序應(yīng)該由許多規(guī)模適中的模塊按合理的層次結(jié)構(gòu)組織而成。總體設(shè)計(jì)階段的第二項(xiàng)主要任務(wù)就是設(shè)計(jì)軟件的結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。通常用層次圖或結(jié)構(gòu)圖描繪軟件的結(jié)構(gòu)。
詳細(xì)設(shè)計(jì)總體設(shè)計(jì)階段以比較抽象概括的方式提出了解決問(wèn)題的辦法。詳細(xì)設(shè)計(jì)階段的任務(wù)就是把解法具體化,也就是回答下面這個(gè)關(guān)鍵問(wèn)題:"應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?"這個(gè)階段的任務(wù)還不是編寫(xiě)程序,而是設(shè)計(jì)出程序的詳細(xì)規(guī)格說(shuō)明。這種規(guī)格說(shuō)明的作用很類(lèi)似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍(lán)圖,它們應(yīng)該包含必要的細(xì)節(jié),程序員可以根據(jù)它們寫(xiě)出實(shí)際的程序代碼。通常用 HIPO 圖或PDL語(yǔ)言描述詳細(xì)設(shè)計(jì)的結(jié)果。
這樣的文檔系統(tǒng)的思路是一個(gè)慢慢積累的過(guò)程,如JJX同志所說(shuō),我們現(xiàn)在有太多的形式上的東西,它并不是一個(gè)程序員真正需要的系統(tǒng)分析/設(shè)計(jì)書(shū),對(duì)于系統(tǒng)的設(shè)計(jì)到實(shí)施到最后的代碼以及驗(yàn)收有太多的改動(dòng)和變化,我們正在一個(gè)極不規(guī)范的系統(tǒng)中生存,所以我們不可能有太多的選擇,只能應(yīng)付了事。所以與大家一起探討一個(gè)真正適合我們的文檔模式,這個(gè)模式或是說(shuō)模板能為我們的代碼工作減少負(fù)擔(dān),帶來(lái)更多的動(dòng)能。