結(jié)構(gòu)化方法
結(jié)構(gòu)化開(kāi)發(fā)方法是由E.Yourdon 和 L.L.Constantine 提出的,即所謂的SASD 方 法, 也可稱(chēng)為面向功能的軟件開(kāi)發(fā)方法或面向數(shù)據(jù)流的軟件開(kāi)發(fā)方法。
Yourdon方法是80年代 使用最廣泛的軟件開(kāi)發(fā)方法。它首先用結(jié)構(gòu)化分析(SA)對(duì)軟件進(jìn)行需求分析,然后用結(jié)構(gòu)化設(shè)計(jì)(SD)方法進(jìn)行總體設(shè)計(jì),最后是結(jié)構(gòu)化編程(SP)。它給出了兩類(lèi)典型的軟件結(jié)構(gòu)(變換型和事務(wù)型)使軟件開(kāi)發(fā)的成功率大大提高。
面向數(shù)據(jù)結(jié)構(gòu)的軟件開(kāi)發(fā)方法
Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的軟件開(kāi)發(fā)方法,Jackson方法把問(wèn)題分解為可由三種基本結(jié)構(gòu)形式表示的各部分的層次結(jié)構(gòu)。三種基本的結(jié)構(gòu)形式就是順序、選擇和重復(fù)。三種數(shù)據(jù)結(jié)構(gòu)可以進(jìn)行組合,形成復(fù)雜的結(jié)構(gòu)體系。這一方法從目標(biāo)系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導(dǎo)出程序框架結(jié)構(gòu),再補(bǔ)充其它細(xì)節(jié),就可得到完整的程序結(jié)構(gòu)圖。這一方法對(duì)輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件表格處理。該方法也可與其它方法結(jié)合,用于模塊的詳細(xì)設(shè)計(jì)。
面向問(wèn)題的分析法
PAM(Problem Analysis Method)是80年代末由日立公司提出的一種軟件開(kāi)發(fā)方法。 它的基本思想是考慮到輸入、輸出數(shù)據(jù)結(jié)構(gòu),指導(dǎo)系統(tǒng)的分解,在系統(tǒng)分析指導(dǎo)下逐步綜 合。這一方法的具體步驟是:從輸入、輸出數(shù)據(jù)結(jié)構(gòu)導(dǎo)出基本處理框;分析這些處理框之間的先后關(guān)系;按先后關(guān)系逐步綜合處理框,直到畫(huà)出整個(gè)系統(tǒng)的PAD圖。這一方法本質(zhì)上是綜合的自底向上的方法,但在逐步綜合之前已進(jìn)行了有目的的分解,這個(gè)目的就是充分考慮系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)。PAM方法的另一個(gè)優(yōu)點(diǎn)是使用PAD圖。這是一種二維樹(shù)形結(jié)構(gòu)圖,是到目前為止最好的詳細(xì)設(shè)計(jì)表示方法之一。當(dāng)然由于在輸入、輸出數(shù)據(jù)結(jié)構(gòu)與整個(gè)系統(tǒng)之間同樣存在著鴻溝,這一方法仍只適用于中小型問(wèn)題。
原型化方法
產(chǎn)生原型化方法的原因很多,主要隨著我們系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)的增多,我們也發(fā)現(xiàn)并非所有的需求都能夠預(yù)先定義而且反復(fù)修改是不可避免的。當(dāng)然能夠采用原型化方法是因?yàn)殚_(kāi)發(fā)工具的快速發(fā)展,比如用VB,DELPHI等工具我們可以迅速的開(kāi)發(fā)出一個(gè)可以讓用戶(hù)看的見(jiàn)、摸的著的系統(tǒng)框架,這樣,對(duì)于計(jì)算機(jī)不是很熟悉的用戶(hù)就可以根據(jù)這個(gè)樣板提出自己的需求。
開(kāi)發(fā)方法
軟件工程的方法有很多方面的意義。包括專(zhuān)案管理,分析,設(shè)計(jì),程序的編寫(xiě),測(cè)試和質(zhì)量控制。
軟件設(shè)計(jì)方法可以區(qū)別為重量級(jí)的方法和輕量級(jí)的方法。重量級(jí)的方法中產(chǎn)生大量的正式文檔。
著名的重量級(jí)開(kāi)發(fā)方法包括ISO9000,CMM,和統(tǒng)一軟件開(kāi)發(fā)過(guò)程(RUP)。
輕量級(jí)的開(kāi)發(fā)過(guò)過(guò)程沒(méi)有對(duì)大量正式文檔的要求。著名的輕量級(jí)開(kāi)發(fā)方法包括極限編程(XP)和敏捷流程(AgileProcesses)。