當(dāng)一個軟件項目擺在人們面前時,進行系統(tǒng)的分析是首當(dāng)其沖的,正如我們的一句古語:三思而后行。因此,無論做任何事都應(yīng)考慮是否有意義以及它的可行性。在過去,人們將“軟件”與“程序”、“開發(fā)軟件”與“編程序”劃等號,粗略的進行估計和設(shè)計軟件產(chǎn)品勢必會影響軟件的質(zhì)量和生產(chǎn)效率。然而現(xiàn)在,隨著信息化產(chǎn)業(yè)的發(fā)展,軟件企業(yè)的增多,尤其是當(dāng)面對一些大中型的軟件項目,對軟件生命周期的各個環(huán)節(jié)進行系統(tǒng)詳細(xì)的分析將更加重要,而且會提高軟件的質(zhì)量和效率。
一、軟件系統(tǒng)開發(fā)
無論動物、植物,作為一個完整的事物,都有它的生命周期、或者說它的軌跡。作為先進高科技的產(chǎn)物---軟件產(chǎn)品,自然也不例外。這期間,要經(jīng)過一系列的過程,例如,開發(fā)者首先要考慮它的可行性,是否能堅決當(dāng)前問題或是將來是否能有更大的發(fā)展,當(dāng)然要有詳細(xì)的規(guī)劃和設(shè)計,要形成書面的文檔記錄下來,以便開發(fā)員之間的交流。其次關(guān)鍵的是能否滿足用戶的需求,因為判斷開發(fā)出來的軟件是否成功的標(biāo)準(zhǔn)之一就是看它有無實用性。之后便是一系列的實施,例如程序設(shè)計,系統(tǒng)測試,以及接下來的后續(xù)工作---維護與修改工作。
軟件生命周期的各個環(huán)節(jié)將軟件系統(tǒng)開發(fā)大致分為四個階段,用圖示的方式表現(xiàn)出來即通常所說的“瀑布模型”,如圖:
二、系統(tǒng)分析
系統(tǒng)分析是軟件生命周期的一個關(guān)鍵環(huán)節(jié),其目標(biāo)是將對計算機應(yīng)用系統(tǒng)的需求轉(zhuǎn)化成實際的物理實現(xiàn)。然而實際面太多,增加了軟件分析的復(fù)雜度,那么究竟在系統(tǒng)分析的過程中需要考慮那些因素呢?
1、系統(tǒng)目的。在考慮系統(tǒng)目的時,應(yīng)更多的側(cè)重于系統(tǒng)的最終目標(biāo)考慮,因為一個系統(tǒng)不可能在最初就是完美的,要為系統(tǒng)留些余地。
2、系統(tǒng)參與者。在整個項目中,要考慮有哪些方面參與了系統(tǒng),這些參與者人可能在系統(tǒng)建設(shè)中起重要作用,他們采取什么樣的態(tài)度將會對系統(tǒng)有一定的影響。另外,還要了解各參與者的初衷是什么。
3、明確的評價標(biāo)準(zhǔn)。最好從參與的各方面都進行考慮,要知道他們對這個系統(tǒng)是否有一個明確的評價標(biāo)準(zhǔn)。
4、系統(tǒng)開發(fā)計劃的完善度。計劃表要有明確的階段,每一階段要有詳細(xì)的完成計劃,以及對階段完成情況進行的評價。
當(dāng)然還有很多因素值得考慮,可以根據(jù)面對的項目的不同而改變,譬如與軟件開發(fā)人員的交流等等。
三、開發(fā)內(nèi)容
開發(fā)軟件系統(tǒng)最為困難的部分,就是準(zhǔn)確說明開發(fā)什么。這就需要在開發(fā)的過程中不斷的與用戶進行交流與探討,使系統(tǒng)更加詳盡,準(zhǔn)確到位。這就需要確定用戶是否需要這樣的產(chǎn)品類型以及獲取每個用戶類的需求。需求類型包括三個:
1、業(yè)務(wù)需求(business requirement)反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目的要求,它們在項目視圖與范圍文檔中予以說明。
2、用戶需求(user requirement) 文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實例文檔或方案腳本說明中予以說明。
3、功能需求(functional requirement)定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。
總之,無論是商業(yè)性或非商業(yè)目的的產(chǎn)品,都應(yīng)具備完整的說明書,以避免發(fā)生狀況時引起不必要的損失。
四、分析設(shè)計和系統(tǒng)方案
在考慮完各方面的實際因素后,就要對項目進行總體的分析設(shè)計。簡單的講,總體設(shè)計需要確定的內(nèi)容應(yīng)當(dāng)包括:
1、系統(tǒng)需要實現(xiàn)哪些功能;
?2、開發(fā)使用什么軟件,在什么樣的硬件環(huán)境;
3、需要多少人,多少時間;
4、需要遵循的規(guī)則和標(biāo)準(zhǔn)有哪些。
一般情況下,在總體設(shè)計出來后,就需要給客戶一個系統(tǒng)的方案。如果在客戶需求不是十分明確的情況下提交方案,往往和實際制作后的結(jié)果會有很大差異。所以應(yīng)該盡量取得客戶的理解,在明確需求并總體設(shè)計后提交方案,這樣對雙方都有益處。而方案則應(yīng)包括以下幾個部分:
1.客戶情況分析;
2.系統(tǒng)需要實現(xiàn)的目的和目標(biāo);
3.系統(tǒng)各個模塊與結(jié)構(gòu);
4.使用軟件,硬件和技術(shù)分析說明;
5.開發(fā)時間進度表;
6.維護方案;
7.制作費用。
總之,總體設(shè)計階段是以比較抽象概括的方式提出了解決問題的辦法;而詳細(xì)設(shè)計階段的任務(wù),也就是把解法具體化。詳細(xì)設(shè)計主要是針對程序開發(fā)部分來說的,但這個階段的不是真正編寫程序,而是設(shè)計出程序的詳細(xì)規(guī)格說明。這種規(guī)格說明的作用很類似于其他工程領(lǐng)域中工程師經(jīng)常使用的工程藍圖,它們應(yīng)該包含必要的細(xì)節(jié),例如:程序界面、表單、需要的數(shù)據(jù)等,程序員可以根據(jù)它們寫出實際的程序代碼;而至于后續(xù)的工作,就有程序員來完成編寫程序,系統(tǒng)測試員來完成測試,還有之后的維護和修改。
五、運用策略
偉人有治國的策略,商人有致富的財路,巧婦有理家的本領(lǐng),鶴發(fā)童顏的老人有長生的秘訣。在進行軟件開發(fā)系統(tǒng)分析時,也要本著一些策略:
1.“簡單—復(fù)雜—簡單”。這是技術(shù)型分析人員經(jīng)常碰到的情況,認(rèn)為分析出錯綜復(fù)雜的關(guān)系,花哨的圖表才能顯示出分析水平高,其實,分析經(jīng)常要經(jīng)歷"簡單-復(fù)雜-簡單"的過程,前一個簡單表現(xiàn)為分析人員"認(rèn)為簡單";隨著分析的深入,原以為簡單的問題會越來越復(fù)雜;最后,經(jīng)過概括、消化、分解,使得需求簡單明了。
2.軟件復(fù)用技術(shù)。新開發(fā)的軟件,要從一開始就考慮其可演化性,以便以后的再工程和構(gòu)件提取。隨著軟件復(fù)用技術(shù)的不斷發(fā)展,從頭開始的軟件大量減少,使用的遺產(chǎn)系統(tǒng)相應(yīng)增多,這就避免了重復(fù)的工作,使得已完善的模塊遺傳下去。
3.模塊化概念。模塊化可以增強系統(tǒng)的獨立性,使耦合度降低,實現(xiàn)“高內(nèi)聚-松耦合”。對于模塊的內(nèi)部,使其高度集中,而模塊與模塊間的聯(lián)系相對減少,這樣使系統(tǒng)各模塊獨立的進行運轉(zhuǎn)。
任何雄才偉略的人都能縱觀全局,有一覽眾山小之氣魄。若想有出色的成果必然要有對事物進行總的分析的能力,這就包括是否著眼于長遠利益,是否能對其很好的管理掌控。系統(tǒng)并不是簡單的計算機代替手工勞作的一種方式,它是一種高于現(xiàn)實的管理模式。因此,系統(tǒng)分析是軟件開發(fā)過程中必不可少的一個環(huán)節(jié),它為高質(zhì)量軟件產(chǎn)品的開發(fā)奠定了基礎(chǔ)。
?