當今對於軟體系統的開發,不僅僅需要掌握計算機開發語言的程式設計技巧,更重要的是掌握一個軟體工程在需求分析、系統分析及測試階段所需要的工作技巧,即軟體的開發方法。國外大的軟體公司和機構一直在研究軟體開發方法這個概念性的東西,而且也提出了很多實際的開發方法,比如:生命週期法、原型化方法、面向物件方法等。
一、結構化方法
結構化開發方法是由E.Yourdon和L.L.Constantine提出的,即所謂SASD方法,也是可稱為面向功能的軟體開發方法或面向資料流的軟體開發方法。SASD方法是20世紀80年代使用最廣泛的軟體開發方法。它首先用結構化分析(SA)對軟體進行需求分析,然後用結構設計(SD)方法進行總體設計,最後是結構化程式設計(SP)。它給出了兩類典型的軟體結構(變換型和事務型),使軟體開發的成功率大大提高。
二、面向資料結構的軟體開發方法
Jackson方法是最典型的面向資料結構的軟體開發方法。Jackson方法把問題分解為可由三種基本結構形式表示的各部分的層次結構。三種基本的結構形式就是順序、選擇和重複。三種資料結構可以進行組合,形成複雜的結構體系。這一方法從目標系統的輸入、輸出資料結構入手,到資料框架結構,再補充其它細節,就可以得到完整的程式結構圖。這一方法對輸入、輸出資料結構明確的中小型系統特別有效,如商業應用中的檔案表格處理。該方法也可以與其他方法結合,用於模組的詳細設計。
三、面向問題的分析法
PAM(problemanalysismethod)方法是20世紀80年代由日立公司提出的一種軟體開發方法。它的基本思想是考慮到輸入、輸出資料結構,指導系統的分解,在系統分析指導下逐步綜合。這一方面的具體步驟是:從輸入、輸出資料結構匯出基本處理框;分析這些處理框之間的先後關係;按先後關係逐步綜合處理框,直到畫出整個系統的PAD圖。這一方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分解,這個目的就是充分考慮系統的輸入、輸出資料結構。PAM方法的另一個優點是使用PAD圖。這是一種二維樹形結構圖,是到目前為止最好的詳細設計的表示方法之一。但由於在輸入、輸出資料結構與整個系統之間存在著鴻溝,這一方法仍只適用於中小型問題。
四、原型化方法
產生原型化方法的原因很多。主要是隨著我們系統開發經驗的增多,發現並非所有的需求都能夠預先定義,反覆修改是不可避免的。當然能夠採用原型化方法也是因為開發工具的快速發展,比如用VB、Delphi等工具,我們可以迅速地開發出一個可以讓使用者看得見、摸得著的系統框架,這樣,對於計算機不是很熟悉的使用者就可以根據這個樣板提出自己的需求。
開發原型化系統一般有以下幾個階段:
1.確定使用者需求
2.開發原始模型
3.徵求使用者對初始原型的改進意見
4.修改原型
原型化開發比較適合於使用者需求不清、業務理論不確定、需求經常變化的情況。當系統規模不是很大也不太複雜時,採用該方法是比較好的。
五、面向物件的軟體開發方法
當前計算機業界最流行的幾個詞就是分散式、並行和麵向物件這幾個術語,由此可以看到“面向物件”這個概念在當前計算機業界的地位,比如當前流行的兩大面向物件技術DCOM和CORBA就是例子。當前我們實際用到的還是面向物件的程式語言,比如C++。不可否認,面向物件技術是軟體技術的一次革命,在軟體開發史上具有里程碑式的意義。
隨著OOP(面向物件程式設計)向OOD(面向物件設計)和OOA(面向物件分析)的發展,最終形成面向物件的軟體開發方法OMT(objectmodelingtechnique)。這是一種自底向上和自頂向下相結合的方法,而且它以物件建模為基礎,不僅考慮了輸入、輸出資料結構,實際上也包含了所有物件的資料結構,所以OMT徹底實現了PAM沒有完全實現的目標。不僅如此,OOP技術在需求分析上、可維護性和可靠性這三個軟體開發的關鍵環節和質量指標上也有了實質性的突破,基本解決了在這方面存在的嚴重問題。
綜上所述,面向物件開發採用了自底向上的歸納、自頂向下的分解的方法,它透過對物件模型的建立,能夠真正基於使用者的需求,而且系統的可維護性大大改善。當前業界關於面向物件建模的標準是UML(UnifiedModelingLanguage)。
六、視覺化開發方法
其實視覺化開發並不能單獨地作為一種開發方法,更加貼切地說它是一種輔助的工具,比如用過Sybase的S-Design的人都知道,用這個工具可以進行顯示圖形化的資料庫模式的建立,並可以匯出到不同的資料庫中去。當然用過S-Design的人不一定很多,但用過VB、Delphi、C++、Builder等開發工具的人一定不少,實際上這部分人就是在使用視覺化開發工具。
當然,不可否認的是,使用這些視覺化開發工具也只是在程式設計這個環節上用了視覺化,而不是在系統分析和系統設計這個層次上用了視覺化。實際上,建立系統分析和系統設計的視覺化工具是一個很好的賣點,國外有很多工具開發商都在致力於這方面產品的設計。
《軟體開發的幾種方法》是由賢集網所整理科技文章,賢集網是中國領先的企業技術服務平臺,專業從事企業技術支援服務,解決企業在實際生產中所遇到的各種技術難題,為國內廣大中小企業提供完整的技術解決方案。
當今對於軟體系統的開發,不僅僅需要掌握計算機開發語言的程式設計技巧,更重要的是掌握一個軟體工程在需求分析、系統分析及測試階段所需要的工作技巧,即軟體的開發方法。國外大的軟體公司和機構一直在研究軟體開發方法這個概念性的東西,而且也提出了很多實際的開發方法,比如:生命週期法、原型化方法、面向物件方法等。
一、結構化方法
結構化開發方法是由E.Yourdon和L.L.Constantine提出的,即所謂SASD方法,也是可稱為面向功能的軟體開發方法或面向資料流的軟體開發方法。SASD方法是20世紀80年代使用最廣泛的軟體開發方法。它首先用結構化分析(SA)對軟體進行需求分析,然後用結構設計(SD)方法進行總體設計,最後是結構化程式設計(SP)。它給出了兩類典型的軟體結構(變換型和事務型),使軟體開發的成功率大大提高。
二、面向資料結構的軟體開發方法
Jackson方法是最典型的面向資料結構的軟體開發方法。Jackson方法把問題分解為可由三種基本結構形式表示的各部分的層次結構。三種基本的結構形式就是順序、選擇和重複。三種資料結構可以進行組合,形成複雜的結構體系。這一方法從目標系統的輸入、輸出資料結構入手,到資料框架結構,再補充其它細節,就可以得到完整的程式結構圖。這一方法對輸入、輸出資料結構明確的中小型系統特別有效,如商業應用中的檔案表格處理。該方法也可以與其他方法結合,用於模組的詳細設計。
三、面向問題的分析法
PAM(problemanalysismethod)方法是20世紀80年代由日立公司提出的一種軟體開發方法。它的基本思想是考慮到輸入、輸出資料結構,指導系統的分解,在系統分析指導下逐步綜合。這一方面的具體步驟是:從輸入、輸出資料結構匯出基本處理框;分析這些處理框之間的先後關係;按先後關係逐步綜合處理框,直到畫出整個系統的PAD圖。這一方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分解,這個目的就是充分考慮系統的輸入、輸出資料結構。PAM方法的另一個優點是使用PAD圖。這是一種二維樹形結構圖,是到目前為止最好的詳細設計的表示方法之一。但由於在輸入、輸出資料結構與整個系統之間存在著鴻溝,這一方法仍只適用於中小型問題。
四、原型化方法
產生原型化方法的原因很多。主要是隨著我們系統開發經驗的增多,發現並非所有的需求都能夠預先定義,反覆修改是不可避免的。當然能夠採用原型化方法也是因為開發工具的快速發展,比如用VB、Delphi等工具,我們可以迅速地開發出一個可以讓使用者看得見、摸得著的系統框架,這樣,對於計算機不是很熟悉的使用者就可以根據這個樣板提出自己的需求。
開發原型化系統一般有以下幾個階段:
1.確定使用者需求
2.開發原始模型
3.徵求使用者對初始原型的改進意見
4.修改原型
原型化開發比較適合於使用者需求不清、業務理論不確定、需求經常變化的情況。當系統規模不是很大也不太複雜時,採用該方法是比較好的。
五、面向物件的軟體開發方法
當前計算機業界最流行的幾個詞就是分散式、並行和麵向物件這幾個術語,由此可以看到“面向物件”這個概念在當前計算機業界的地位,比如當前流行的兩大面向物件技術DCOM和CORBA就是例子。當前我們實際用到的還是面向物件的程式語言,比如C++。不可否認,面向物件技術是軟體技術的一次革命,在軟體開發史上具有里程碑式的意義。
隨著OOP(面向物件程式設計)向OOD(面向物件設計)和OOA(面向物件分析)的發展,最終形成面向物件的軟體開發方法OMT(objectmodelingtechnique)。這是一種自底向上和自頂向下相結合的方法,而且它以物件建模為基礎,不僅考慮了輸入、輸出資料結構,實際上也包含了所有物件的資料結構,所以OMT徹底實現了PAM沒有完全實現的目標。不僅如此,OOP技術在需求分析上、可維護性和可靠性這三個軟體開發的關鍵環節和質量指標上也有了實質性的突破,基本解決了在這方面存在的嚴重問題。
綜上所述,面向物件開發採用了自底向上的歸納、自頂向下的分解的方法,它透過對物件模型的建立,能夠真正基於使用者的需求,而且系統的可維護性大大改善。當前業界關於面向物件建模的標準是UML(UnifiedModelingLanguage)。
六、視覺化開發方法
其實視覺化開發並不能單獨地作為一種開發方法,更加貼切地說它是一種輔助的工具,比如用過Sybase的S-Design的人都知道,用這個工具可以進行顯示圖形化的資料庫模式的建立,並可以匯出到不同的資料庫中去。當然用過S-Design的人不一定很多,但用過VB、Delphi、C++、Builder等開發工具的人一定不少,實際上這部分人就是在使用視覺化開發工具。
當然,不可否認的是,使用這些視覺化開發工具也只是在程式設計這個環節上用了視覺化,而不是在系統分析和系統設計這個層次上用了視覺化。實際上,建立系統分析和系統設計的視覺化工具是一個很好的賣點,國外有很多工具開發商都在致力於這方面產品的設計。
《軟體開發的幾種方法》是由賢集網所整理科技文章,賢集網是中國領先的企業技術服務平臺,專業從事企業技術支援服務,解決企業在實際生產中所遇到的各種技術難題,為國內廣大中小企業提供完整的技術解決方案。