軟件開發(fā)的管理方法
當今對于軟件系統(tǒng)的開發(fā),不僅僅需要掌握計算機開發(fā)語言的編程技巧,更重要的是掌握一個軟件工程在需求分析、系統(tǒng)分析及測試階段所需要的工作技巧,即軟件的開發(fā)方法。國外大的軟件公司和機構一直在研究
軟件開發(fā)方法這個概念性的東西,而且也提出了很多實際的開發(fā)方法,比如:生命周期法、原型化方法、面向對象方法等。下面簡單介紹幾種流行的
軟件開發(fā)方法,以供
軟件開發(fā)人員參考。
一、結構化方法
結構化開發(fā)方法是由E.Yourdon 和L.L.Constantine提出的,即所謂SASD方法,也是可稱為面向功能的
軟件開發(fā)方法或面向數(shù)據(jù)流的
軟件開發(fā)方法。SASD方法是20世紀80年代使用最廣泛的
軟件開發(fā)方法。它首先用結構化分析(SA)對軟件進行需求分析,然后用結構設計(SD)方法進行總體設計,最后是結構化編程(SP)。它給出了兩類典型的軟件結構(變換型和事務型),使用
軟件開發(fā)的成功率大大提高。
Jackson方法是最典型的面向數(shù)據(jù)結構的
軟件開發(fā)方法。Jackson方法把問題分解為可由三種基本結構形式表示的各部分的層次結構。三種基本的結構形式就是順序、選擇和重復。三種數(shù)據(jù)結構可以進行組合,形成復雜的結構體系。這一方法從目標系統(tǒng)的輸入、輸出數(shù)據(jù)結構入手,到數(shù)據(jù)框架結構,再補充其它細節(jié),就可以得到完整的程序結構圖。這一方法對輸入、輸出數(shù)據(jù)結構明確的中小型系統(tǒng)特別有效,如商業(yè)應用中的文件表格處理。該方法也可以與其他方法結合,用于模塊的詳細設計。
三、面向問題的分析法
PAM(problem analysis method)方法是20世紀80年代由日立公司提出的一種
軟件開發(fā)方法。它的基本思想是考慮到輸入、輸出數(shù)據(jù)結構,指導系統(tǒng)的分解,在系統(tǒng)分析指導下逐步綜合。這一方面的具體步驟是:從輸入、輸出數(shù)據(jù)結構導出基本處理框;分析這些處理框之間的先后關系;按先后關系逐步綜合處理框,直到畫出整個系統(tǒng)的PAD圖。這一方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分解,這個目的就是充分考慮系統(tǒng)的輸入、輸出數(shù)據(jù)結構。PAM方法的另一個優(yōu)點是使用PAD圖。這是一種二維樹形結構圖,是到目前為止最好的詳細設計的表示方法之一。但由于在輸入、輸出數(shù)據(jù)結構與整個系統(tǒng)之間存在著鴻溝,這一方法仍只適用于中小型問題。
四、原型化方法
產生原型化方法的原因很多。主要是隨著我們系統(tǒng)開發(fā)經驗的增多,發(fā)現(xiàn)并非所有的需求都能夠預先定義,反復修改是不可避免的。當然能夠采用原型化方法也是因為開發(fā)工具的快速發(fā)展,比如用VB、Delphi等工具,我們可以迅速地開發(fā)出一個可以讓用戶看得見、摸得著的系統(tǒng)框架,這樣,對于計算機不是很熟悉的用戶就可以根據(jù)這個樣板提出自己的需求。 開發(fā)原型化系統(tǒng)一般有以下幾個階段:
1.確定用戶需求
2.開發(fā)原始模型
3.征求用戶對初始原型的改進意見
4.修改原型
原型化開發(fā)比較適合于用戶需求不清、業(yè)務理論不確定、需求經常變化的情況。當系統(tǒng)規(guī)模不是很大也不太復雜時,采用該方法是比較好的。
當前計算機業(yè)界最流行的幾個詞就是分布式、并行和面向對象這幾個術語,由此可以看到“面向對象”這個概念在當前計算機業(yè)界的地位,比如當前流行的兩大面向對象技術DCOM和CORBA就是例子。當前我們實際用到的還是面向對象的編程語言,比如C++。不可否認,面向對象技術是軟件技術的一次革命,在
軟件開發(fā)史上具有里程碑式的意義。
隨著OOP(面向對象編程)向OOD(面向對象設計)和OOA(面向對象分析)的發(fā)展,最終形成面向對象的
軟件開發(fā)方法OMT(object modeling technique)。這是一種自底向上和自頂向下相結合的方法,而且它以對象建模為基礎,不僅考慮了輸入、輸出數(shù)據(jù)結構,實際上也包含了所有對象的數(shù)據(jù)結構,所以OMT徹底實現(xiàn)了PAM沒有完全實現(xiàn)的目標。不僅如此,OOP技術在需求分析上、可維護性和可靠性這三個
軟件開發(fā)的關鍵環(huán)節(jié)和質量指標上也有了實質性的突破,基本解決了在這方面存在的嚴重問題。
綜上所述,面向對象開發(fā)采用了自底向上的歸納、自頂向下的分解的方法,它通過對對象模型的建立,能夠真正基于用戶的需求,而且系統(tǒng)的可維護性大大改善。當前業(yè)界關于面向對象建模的標準是UML(Unified Modeling Language)。
六、可視化開發(fā)方法
其實可視化開發(fā)并不能單獨地作為一種開發(fā)方法,更加貼切地說它是一種輔助的工具,比如用過Sybase的S-Design的人都知道,用這個工具可以進行顯示圖形化的數(shù)據(jù)庫模式的建立,并可以導出到不同的數(shù)據(jù)庫中去。當然用過S-Design的人不一定很多,但用過VB、Delphi、C++、Builder等開發(fā)工具的人一定不少,實際上這部分人就是在使用可視化開發(fā)工具。
當然,不可否認的是,使用這些可視化開發(fā)工具也只是在編程這個環(huán)節(jié)上用了可視化,而不是在系統(tǒng)分析和系統(tǒng)設計這個層次上用了可視化。實際上,建立系統(tǒng)分析和系統(tǒng)設計的可視化工具是一個很好的賣點,國外有很多工具開發(fā)商都在致力于這方面產品的設計。
可視化開發(fā)使我們的注意力集中在業(yè)務流程上,用戶界面可以通過可視化工具方便地構成。通過操作界面元素,諸如菜單、按鈕、對話框、編輯框、單選框、復選框、列表框和滾動條等,由可視化開發(fā)工具自動生成應用軟件。