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