



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、系統(tǒng)分析怎么寫(xiě)在軟件開(kāi)發(fā)工程中我們所做的第一步: 系統(tǒng)分析。 希望我們中國(guó)的代碼人能吸取更多更好的 理論和實(shí)際的經(jīng)驗(yàn),有符合我們實(shí)際情況的系統(tǒng)分析、開(kāi)發(fā)方法、步驟以 及文檔。系統(tǒng)分 析,我個(gè)人認(rèn)為它應(yīng)該是能體現(xiàn)系統(tǒng)的靈魂性的文檔。 該文檔應(yīng)有什么內(nèi)容, 表達(dá)什么意思 是我想在這里與大家探討的問(wèn)題。我覺(jué)得在系統(tǒng)分析書(shū)中 應(yīng)該有以下內(nèi)容(視項(xiàng)目而定) :1、系統(tǒng)需求說(shuō)明 說(shuō)明系統(tǒng)是一個(gè)什么樣的系統(tǒng), 用市場(chǎng)上現(xiàn)有的系統(tǒng)來(lái)類(lèi)比, 用客戶(hù)(或 是我們自己)需要一個(gè)什么樣的系統(tǒng)進(jìn)行說(shuō)明,力求完整。并對(duì)系 統(tǒng)的發(fā)展可擴(kuò)充性進(jìn)行 描述(現(xiàn)在沒(méi)有哪個(gè)系統(tǒng)是一次 OK 的)。說(shuō)明與現(xiàn)有的系統(tǒng)有什么相同什么不同,
2、說(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)的前三種文檔,不知大家有什么想法,請(qǐng)賜教。作為開(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)該考慮幾種可能
3、的解決方案。 例如, 目標(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)很方便, 而且可能還具有用戶(hù)沒(méi)有具 體指定的某些 功能和特點(diǎn)。 雖然用戶(hù)沒(méi)有提出這些具體要求, 但是系統(tǒng)分析員根據(jù)自己 的知識(shí)和經(jīng)驗(yàn)斷定,這些附加的能力在實(shí)踐中將證明是很有價(jià)值的。高成本的 "十全十美 "的系統(tǒng)這樣的系統(tǒng)具有
4、用戶(hù)可能希望有的所有功能和特點(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ì)劃。 如果用戶(hù)接受分析員推薦的系統(tǒng), 則可 以著手完成本 階段的另一項(xiàng)主要工作。上面的工作確定了解決問(wèn)題的策略以及目標(biāo)系統(tǒng)需要哪些程序, 但是怎樣設(shè)計(jì)這些程序呢? 結(jié)構(gòu)設(shè)計(jì)的一條基本原理就是程序應(yīng)該模塊化, 也就是一個(gè)大程序應(yīng)該由許多規(guī)模適中的模 塊按合理的層次結(jié)構(gòu)組織而成。 總體設(shè)計(jì)階段的第二項(xiàng)主要任務(wù)就是設(shè)計(jì)軟件的結(jié)構(gòu), 也就 是確定程序由哪些模塊組成以及模塊間的
5、關(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ǔ)言(過(guò)程設(shè)計(jì)語(yǔ)言)描述詳細(xì)設(shè)計(jì)的結(jié)果。 我想這樣的文檔系統(tǒng)的思路是一個(gè)慢慢積累的過(guò)程, 如 JJX
6、同志所說(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)能 :)就目前的開(kāi)發(fā)思路, 應(yīng)用環(huán)境和編程方法來(lái)說(shuō), 傳統(tǒng)的需求分析 -系統(tǒng)分析 -概要設(shè)計(jì) -詳細(xì)設(shè) 計(jì)-已越來(lái)越不行了,因?yàn)椋?、現(xiàn)在的應(yīng)用和以前大不一樣?,F(xiàn)在的應(yīng)用是一種龐大的集成,包括跨平臺(tái),網(wǎng)絡(luò),數(shù)據(jù) 庫(kù)等等, 而且新技術(shù)的出現(xiàn)越來(lái)越快, 任何
7、人都無(wú)法精通甚至是掌握 全部技術(shù)。 簡(jiǎn)單例子: 現(xiàn)在有 Windows,Unix,Linux 等平臺(tái),有 SQL Server,Oracle,Sybase 等數(shù)據(jù)庫(kù),有 C+,VB,Delphi 等工具,誰(shuí)能全部精通呢?如果不能,那么如何確定是Windows+SQL Server+Delphi 好還是 Unix+Oracle+C+ 合適?2、 客戶(hù)沒(méi)有需求。我做過(guò)銀行、電信等大客戶(hù)及各種小客戶(hù),他們無(wú)一另外的說(shuō)"我要做一個(gè) OA 系統(tǒng) ", "我要做一個(gè)企業(yè)網(wǎng) ", "我要做一個(gè) "。可 他們無(wú)法確定要實(shí)現(xiàn)什么,因 為很少有用戶(hù)是真正
8、由于業(yè)務(wù)的需求而做項(xiàng)目的;而且他們也不清楚能夠?qū)崿F(xiàn)什么(因?yàn)樗麄儾欢畁otes,不懂企業(yè)網(wǎng))。3、需求與環(huán)境的變化。由于在項(xiàng)目開(kāi)發(fā)前客戶(hù)沒(méi)有實(shí)質(zhì)性的需求,加上軟件開(kāi)發(fā)人員不熟 悉客戶(hù)的業(yè)務(wù),就導(dǎo)致在開(kāi)發(fā)過(guò)程中需求的不斷變化,嚴(yán)重時(shí)將導(dǎo)致分析與設(shè)計(jì)作廢。4、對(duì)象化的工具和過(guò)程化的程序現(xiàn)在的開(kāi)發(fā)工具已經(jīng)很對(duì)象化了,而我們開(kāi)發(fā)的程序卻很 過(guò)程化。也就是說(shuō)你雖然努力的模塊化, 層次化, 可只要運(yùn)行環(huán)境有所變化,你還要不斷地 修改再修改。上述的實(shí)際情況說(shuō)明我們確實(shí)需要把實(shí)際中的做法修改一下。一個(gè)項(xiàng)目如果做到了80% 的時(shí)候才真正明確這個(gè)系統(tǒng)是什么樣子的話(huà),我認(rèn)為是設(shè)計(jì)者的失敗。所以在設(shè)計(jì)階段不但應(yīng)該做好
9、傳統(tǒng)做法的各種文檔和論證,而且, 應(yīng)該做一些具體的設(shè)計(jì)工作。 比如, 系統(tǒng)的整 體運(yùn)行設(shè)計(jì)及系統(tǒng)各功能模塊的具體設(shè)計(jì)。而且這些 設(shè)計(jì)應(yīng)當(dāng)都有詳細(xì)的設(shè)計(jì)說(shuō)明書(shū)。當(dāng) 這些說(shuō)明書(shū)完成后, 應(yīng)當(dāng)能做到: 隨便找個(gè)程序員他都能只通過(guò)看某功能模塊的設(shè)計(jì)說(shuō)明書(shū) 就能夠開(kāi)始代碼的開(kāi)發(fā)而不用再重新 思考該怎樣去做了,程序員在這里就真的只是一個(gè)設(shè) 計(jì)者的實(shí)現(xiàn)工具。當(dāng)然,也象某些兄弟說(shuō)的那樣,現(xiàn)在的系統(tǒng)都越來(lái)越繁雜、越來(lái)越龐大、 越來(lái)越向集成性質(zhì)靠 攏,似乎是沒(méi)有多少人能掌握具體用什么做效果如何,但關(guān)鍵就在這 里。莫非真的沒(méi)有人能做到這點(diǎn)嗎?非也! 只不過(guò)是目前的顯示情況是, 設(shè)計(jì)人員的水平偏 低, 有些公司的設(shè)計(jì)
10、人員根本就沒(méi)有多少的開(kāi)發(fā)經(jīng)驗(yàn),他又怎能了解太多的系統(tǒng)呢。 系統(tǒng)設(shè)計(jì)在目前看來(lái)似乎是個(gè)拿錢(qián)多干活少的工作, 這是不正常的現(xiàn)象。 培養(yǎng)一個(gè)程序員根 本不用花多大的力氣,一個(gè)人只要不太笨不太蠢,給他一個(gè)機(jī)會(huì),相信就能掌握某門(mén)技術(shù)或方法。但要掌握若干種方法, 就不是能夠通過(guò)速成解決的了。問(wèn)題也在于此。目前似乎所 有的系統(tǒng)設(shè)計(jì)人員都能夠設(shè)計(jì)所有的東西。其實(shí)不 然。很多人都有知識(shí)的局限性,這就決 定他只能對(duì)某些方向的東西做出決策和設(shè)計(jì)。 客戶(hù)固然不知道他要做什么, 但我們應(yīng)該知道。 如果在前期能夠多接觸用戶(hù)、多 深入實(shí)際,把設(shè)計(jì)人員當(dāng)成客戶(hù)工作中的一員,他就能夠 真正了解到客戶(hù)的需求,當(dāng)然也就能夠?yàn)樗龀?/p>
11、合適的設(shè)計(jì)。至于說(shuō)到各種系統(tǒng)之間的好壞對(duì)比, 我想,任何東西都沒(méi)有絕對(duì), 有的只是某些方面的權(quán)衡。 比如性能或空間的權(quán)衡、價(jià)格和性能的權(quán)衡和功能側(cè)重上的權(quán)衡等 等如此而已。計(jì)算機(jī)里 的東西沒(méi)有哪一樣的存在不是包含了這種權(quán)衡在內(nèi)的。 雖然從商務(wù)上似乎總想說(shuō)服用戶(hù)什么 東西好什么東西不好,其實(shí)從技術(shù)上講無(wú)所謂好和 不好,有的只是區(qū)別及該區(qū)別所針對(duì)的 問(wèn)題而已。 這就象有人總在爭(zhēng)論 Linux 和 Window 到底誰(shuí)好一樣。 或許從 "技術(shù) "上講, Linux 比 Window 好,但這其實(shí)并不公正,因?yàn)槠恋?GUI 界面和友好的人際交互同樣應(yīng)該是 " 技術(shù) &q
12、uot;中應(yīng)該考慮到的一部分。 把所有的東西結(jié)合起來(lái)一看就知道沒(méi)有絕對(duì)的好。 所 以, 不 見(jiàn)得非要在用戶(hù)決定之前由系統(tǒng)設(shè)計(jì)的人員事先來(lái)為各種方案做個(gè)排隊(duì), 只需要了解用戶(hù)的 需求,然后從大方向上決定一個(gè)方向再做具體設(shè)計(jì)就可以了。在這里我只從過(guò)去的實(shí)踐角度舉例來(lái)說(shuō), 至于理論方面實(shí)在沒(méi)時(shí)間深入。 首先, 認(rèn)同兩個(gè)說(shuō) 法:1. 項(xiàng)目 (或說(shuō)工程 )有三個(gè)主要方面:功能,時(shí)間,成本。2. 系統(tǒng)分析的任務(wù):將用戶(hù)的業(yè)務(wù)邏輯轉(zhuǎn)化為程序邏輯,計(jì)算時(shí)間和成本。 讓我們來(lái)做一個(gè)概要設(shè)計(jì):1)功能:簡(jiǎn)單的信息發(fā)布系統(tǒng)。2)系統(tǒng) 分析員 根據(jù)項(xiàng) 目的 時(shí)間和 成本 ,在充 分權(quán) 衡各種 方案 的利弊 的基 礎(chǔ)上
13、提 出SQLSERVER+CORBA+DELPHI的方案 用戶(hù)很滿(mǎn)意,0K,開(kāi)始詳細(xì)設(shè)計(jì):1)為方便用戶(hù)的安裝使用三層結(jié)構(gòu)。2)客戶(hù)端包含信息分布和查詢(xún)兩個(gè)模塊。3)使用各種圖或語(yǔ)言描述各種函數(shù),過(guò)程,模塊,層次 一切順利,開(kāi)始編碼 編碼完成, 用戶(hù)試用, 這時(shí)用戶(hù)提出: 在客戶(hù)端要能實(shí)時(shí)跟蹤信息的變化, 而你卻 發(fā)現(xiàn) DELPHI 的CORBA不支持回調(diào)!轉(zhuǎn)用其它方按時(shí)間上不可能,補(bǔ)救措施也不靈(比如使用timer,但客戶(hù)的網(wǎng)絡(luò)環(huán)境不允許多個(gè)用戶(hù)的頻繁刷 新),怎么辦?分析一下問(wèn)題出在哪里:1)有人會(huì)說(shuō)系統(tǒng)分析員不真正了解客戶(hù)的需求,可這不可能(項(xiàng)目時(shí)間的限制 )也不現(xiàn)實(shí) (不可能讓分析員到
14、每個(gè)崗位都去操作一下)。2)有人會(huì)說(shuō)系統(tǒng)分析員的知識(shí)和經(jīng)驗(yàn)不足, 可現(xiàn)實(shí)卻是分析員認(rèn)為應(yīng)該的客戶(hù)覺(jué)得沒(méi)必要, 而客戶(hù)覺(jué)得必須的分析員又不可理解。這是不同的工作造成的,俗話(huà)說(shuō)隔行如隔山。3)有人會(huì)說(shuō)系統(tǒng)分析員的水平不夠,可問(wèn)題絕大部分是出在細(xì)節(jié)而不是大方向上,掌握全部細(xì)節(jié)可能嗎?這就是一個(gè)長(zhǎng)期困擾我的問(wèn)題:細(xì)節(jié)(而不是方向 )往往成為成功與失敗的關(guān)鍵(注意,這里的成功是包含了時(shí)間和成本的),而細(xì)節(jié)是不可能全部發(fā)現(xiàn)與分析清楚的。如何在這種不完整的需求上構(gòu)造完整的系統(tǒng)呢?或是根本不可能呢?這種問(wèn)題我遇到過(guò)多次一一然都是別人做的設(shè)計(jì)。但我認(rèn)為這個(gè)過(guò)程中不足的地方就是:把東西做死了,沒(méi)有切實(shí)地為用戶(hù)著想。 很多人在做設(shè)計(jì)時(shí), 可能考慮的最多的是實(shí)現(xiàn)上的方便, 而不是系統(tǒng)的 擴(kuò)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療健康股權(quán)分配與產(chǎn)業(yè)布局協(xié)議
- 二零二五年度酒店員工勞動(dòng)合同與員工培訓(xùn)及職業(yè)素養(yǎng)提升合同
- 2025年度金融控股集團(tuán)間戰(zhàn)略資金借款合同
- 二零二五年度高空作業(yè)安全協(xié)議責(zé)任書(shū)(高空設(shè)備檢修安全協(xié)議)
- 二零二五年度鮮魚(yú)養(yǎng)殖與品牌營(yíng)銷(xiāo)合作合同
- 二零二五年度電子商務(wù)平臺(tái)技術(shù)支持合同范本
- 二零二五年度汽車(chē)租賃代駕保險(xiǎn)保障合同
- 2025年度餐廳門(mén)面租賃與地方旅游發(fā)展合作合同
- 安徽省2025年度非全日制用工勞動(dòng)合同書(shū)解除與終止協(xié)議
- 數(shù)據(jù)安全保障與服務(wù)合作合同
- 拗九節(jié)班會(huì)方案
- 2022年八大員的勞務(wù)員考試題及答案
- DLT5210.4-2018熱工施工質(zhì)量驗(yàn)收表格
- 醫(yī)院實(shí)習(xí)護(hù)士轉(zhuǎn)科表
- 2023年最新的郭氏宗祠的對(duì)聯(lián)大全
- 《中國(guó)古代文學(xué)史》宋代文學(xué)完整教學(xué)課件
- 新部編人教版四年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
- 物業(yè)服務(wù)企業(yè)市場(chǎng)拓展戰(zhàn)略規(guī)劃課件
- 2018年青海大學(xué)碩士論文格式模板
- 四年級(jí)道德與法治從中國(guó)制造到中國(guó)創(chuàng)造
- 兒童跌倒評(píng)估量表(Humpty-Dumpty)
評(píng)論
0/150
提交評(píng)論