1.結(jié)構(gòu)化方法:分析,設(shè)計,程序設(shè)計構(gòu)成,面向數(shù)據(jù)流的開發(fā)方法,分解和抽象的原則,數(shù)據(jù)流圖建立功能模型,完成需求分析工作。
2.Jackson方法:面向數(shù)據(jù)結(jié)構(gòu)開發(fā)方法。數(shù)據(jù)結(jié)構(gòu)為驅(qū)動,適合小規(guī)模的項目,當(dāng)輸入數(shù)據(jù)結(jié)構(gòu)和輸出結(jié)構(gòu)之間沒有對應(yīng)關(guān)系,難用此方法,JSD(Jackson Structure Prograamming)是JSP(JacksonSystem Development)的擴充
3.原型化方法:和演化模型相對應(yīng),需求不清,業(yè)務(wù)理論不確定,需求經(jīng)常變化,規(guī)模不大去不太復(fù)雜時采用。
4.面向?qū)ο箝_發(fā)方法:分析,設(shè)計,實現(xiàn),Booch,Coad,OMT,為統(tǒng)一各種面向?qū)ο蠓椒ǖ男g(shù)語,概念和模型,推出UML (Unified Modeling Language)統(tǒng)一化建模語言,成為工業(yè)標(biāo)準(zhǔn)。
軟件開發(fā)的內(nèi)容是:需求、設(shè)計、編程和測試!
需求:不僅僅是用戶需求,應(yīng)該是開發(fā)中遇到的所有的需求。比如,你首先要知道做這個項目是為了解決什么問題;測試案例中應(yīng)該輸入什么數(shù)據(jù)……為了清楚地知道這些需求,你經(jīng)常要和客戶、項目經(jīng)理等交流。
設(shè)計:編碼前,肯定有個計劃告訴你要做什么,結(jié)構(gòu)是怎樣等等。你一定要按照這個來做,否則可能會一團糟。
編程:如果在項目截止日,你的程序不能跑起來或達(dá)不到客戶的要求,你就拿不到錢。
測試:目的是讓你知道,什么時候算是完成了。如果你聰明,你就應(yīng)該先寫測試,這樣可以及時知道你是否真地完成了。否則,你經(jīng)常會不知道,到底有哪些功能是真正完成了,離預(yù)期目標(biāo)還差多遠(yuǎn)。
軟件開發(fā)中,客戶和開發(fā)人員都有自己的基本權(quán)利和義務(wù)。
客戶:
定義每個用戶需求的商業(yè)優(yōu)先級;
制訂總體計劃,包括用多少投資、經(jīng)過多長時間、達(dá)到什么目的;
在項目開發(fā)過程中的每個工作周,都能讓投資獲得最大的收益;
通過重復(fù)運行你所指定的功能測試,準(zhǔn)確地掌握項目進(jìn)展情況;
1.結(jié)構(gòu)化方法:分析,設(shè)計,程序設(shè)計構(gòu)成,面向數(shù)據(jù)流的開發(fā)方法,分解和抽象的原則,數(shù)據(jù)流圖建立功能模型,完成需求分析工作。
2.Jackson方法:面向數(shù)據(jù)結(jié)構(gòu)開發(fā)方法。數(shù)據(jù)結(jié)構(gòu)為驅(qū)動,適合小規(guī)模的項目,當(dāng)輸入數(shù)據(jù)結(jié)構(gòu)和輸出結(jié)構(gòu)之間沒有對應(yīng)關(guān)系,難用此方法,JSD(Jackson Structure Prograamming)是JSP(JacksonSystem Development)的擴充3.原型化方法:和演化模型相對應(yīng),需求不清,業(yè)務(wù)理論不確定,需求經(jīng)常變化,規(guī)模不大去不太復(fù)雜時采用。
4.面向?qū)ο箝_發(fā)方法:分析,設(shè)計,實現(xiàn),Booch,Coad,OMT,為統(tǒng)一各種面向?qū)ο蠓椒ǖ男g(shù)語,概念和模型,推出UML (Unified Modeling Language)統(tǒng)一化建模語言,成為工業(yè)標(biāo)準(zhǔn)。
你說的是方法還是模式,如果是模式,有以下三種
瀑布模型(Waterfall Model)是一個項目開發(fā)架構(gòu),瀑布模型核心思想是按工序?qū)栴}化簡,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。
1、瀑布模型有以下優(yōu)點
1)為項目提供了按階段劃分的檢查點。
2)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。
3)可在迭代模型中應(yīng)用瀑布模型。
增量迭代應(yīng)用于瀑布模型。迭代1解決最大的問題。每次迭代產(chǎn)生一個可運行的版本,同時增加更多的功能。每次迭代必須經(jīng)過質(zhì)量和集成測試。
2、瀑布模型有以下缺點
1)在項目各個階段之間極少有反饋。
2)只有在項目生命周期的后期才能看到結(jié)果。
3)通過過多的強制完成日期和里程碑來跟蹤各個項目階段。
盡管瀑布模型招致了很多批評,但是它對很多類型的項目而言依然是有效的,如果正確使用,可以節(jié)省大量的時間和金錢。
面向?qū)ο筮@個概念很抽象。不過我覺得是3者當(dāng)中最適合于軟件系統(tǒng)的開發(fā)。
每個人對于面向?qū)ο筮@個概念的看法都有點不同,開發(fā)的系統(tǒng)越多,對于面向?qū)ο筮@個概念就理解的越深刻。有關(guān)于面向?qū)ο蟮慕忉?,你可以參考下這個:?wtp=tt
原型模型的特點:
(1)開發(fā)人員和用戶在“原型”上達(dá)成一致。這樣一來,可以減少設(shè)計中的錯誤和開發(fā)中的風(fēng)險,也減少了對用戶培訓(xùn)的時間,而提高了系統(tǒng)的實用、正確性以及用戶的滿意程度。
(2)縮短了開發(fā)周期,加快了工程進(jìn)度。
(3)降低成本。
原型模型的缺點:
當(dāng)告訴用戶,還必須重新生產(chǎn)該產(chǎn)品時,用戶是很難接受的。這往往給工程繼續(xù)開展帶來不利因素。
不宜利用原型系統(tǒng)作為最終產(chǎn)品。采用原型模型開發(fā)系統(tǒng),用戶和開發(fā)者必須達(dá)成一致:原型被建造僅僅是用戶用來定義需求,之后便部分或全部拋起,最終的軟件是要充分考慮了質(zhì)量和可維護性等方面之后才被開發(fā)。
一、Parnas方法 最早的軟件開發(fā)方法是由D.Parnas在1972年提出的。
由于當(dāng)時軟件在可維護性和可靠性方面存在著嚴(yán)重問題,因此Parnas提出的方法是針對這兩個問題的。首先,Parnas提出了信息隱蔽原則:在概要設(shè)計時列出將來可能發(fā)生變化的因素,并在模塊劃分時將這些因素放到個別模塊的內(nèi)部。
這樣,在將來由于這些因素變化而需修改軟件時,只需修改這些個別的模塊,其它模塊不受影響。信息隱蔽技術(shù)不僅提高了軟件的可維護性,而且也避免了錯誤的蔓延,改善了軟件的可靠性。
現(xiàn)在信息隱蔽原則已成為軟件工程學(xué)中的一條重要原則。 Parnas提出的第二條原則是在軟件設(shè)計時應(yīng)對可能發(fā)生的種種意外故障采取措施。
軟件是很脆弱的,很可能因為一個微小的錯誤而引發(fā)嚴(yán)重的事故,所以必須加強防范。如在分配使用設(shè)備前,應(yīng)該取設(shè)備狀態(tài)字,檢查設(shè)備是否正常。
此外,模塊之間也要加強檢查,防止錯誤蔓延。Parnas對軟件開發(fā)提出了深刻的見解。
遺憾的是,他沒有給出明確的工作流程。 所以這一方法不能獨立使用,只能作為其它方法的補充。
二、SASD方法 1978年,E.Yourdon和L.L.Constantine提出了結(jié)構(gòu)化方法,即SASD方法,也可稱為面向功能的軟件開發(fā)方法或面向數(shù)據(jù)流的軟件開發(fā)方法。1979年TomDeMarco對此方法作了進(jìn)一步的完善。
Yourdon方法是80年代使用最廣泛的軟件開發(fā)方法。它首先用結(jié)構(gòu)化分析(SA)對軟件進(jìn)行需求分析,然后用結(jié)構(gòu)化設(shè)計(SD)方法進(jìn)行總體設(shè)計,最后是結(jié)構(gòu)化編程(SP)。
這一方法不僅開發(fā)步驟明確,SA、SD、SP相輔相成,一氣呵成,而且給出了兩類典型的軟件結(jié)構(gòu)(變換型和事務(wù)型),便于參照,使軟件開發(fā)的成功率大大提高,從而深受軟件開發(fā)人員的青睞。 三、面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法 1、Jackson方法 1975年,M.A.Jackson提出了一類至今仍廣泛使用的軟件開發(fā)方法。
這一方法從目標(biāo)系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導(dǎo)出程序框架結(jié)構(gòu),再補充其它細(xì)節(jié),就可得到完整的程序結(jié)構(gòu)圖。 這一方法對輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效,如商業(yè)應(yīng)用中的文件表格處理。
該方法也可與其它方法結(jié)合,用于模塊的詳細(xì)設(shè)計。 Jackson方法有時也稱為面向數(shù)據(jù)結(jié)構(gòu)的軟件設(shè)計方法。
2、Warnier方法 1974年,J.D.Warnier提出的軟件開發(fā)方法與Jackson方法類似。 差別有三點:一是它們使用的圖形工具不同,分別使用Warnier圖和Jackson圖;另一個差別是使用的偽碼不同;最主要的差別是在構(gòu)造程序框架時,Warnier方法僅考慮輸入數(shù)據(jù)結(jié)構(gòu),而Jackson方法不僅考慮輸入數(shù)據(jù)結(jié)構(gòu),而且還考慮輸出數(shù)據(jù)結(jié)構(gòu)。
四、問題分析法 PAM問題分析法。PAM(Problem Analysis Method)是80年代末由日立公司提出的一種軟件開發(fā)方法。
PAM方法希望能兼顧Yourdon方法、Jackson方法和自底向上的軟件開發(fā)方法的優(yōu)點,而避免它們的缺陷。 它的基本思想是:考慮到輸入、輸出數(shù)據(jù)結(jié)構(gòu),指導(dǎo)系統(tǒng)的分解,在系統(tǒng)分析指導(dǎo)下逐步綜合。
這一方法的具體步驟是: 從輸入、輸出數(shù)據(jù)結(jié)構(gòu)導(dǎo)出基本處理框;分析這些處理框之間的先后關(guān)系; 按先后關(guān)系逐步綜合處理框,直到畫出整個系統(tǒng)的PAD圖。 從上述步驟中可以看出,這一方法本質(zhì)上是綜合的自底向上的方法,但在逐步綜合之前已進(jìn)行了有目的的分解,這個目的就是充分考慮系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)。
PAM方法的另一個優(yōu)點是使用PAD圖。這是一種二維樹形結(jié)構(gòu)圖,是到目前為止最好的詳細(xì)設(shè)計表示方法之一,遠(yuǎn)遠(yuǎn)優(yōu)于NS圖和PDL語言。
這一方法在日本較為流行,軟件開發(fā)的成功率也很高。由于在輸入、輸出數(shù)據(jù)結(jié)構(gòu)與整個系統(tǒng)之間同樣存在著鴻溝,這一方法仍只適用于中小型問題。
五、面向?qū)ο蟮能浖_發(fā)方法 面向?qū)ο蠹夹g(shù)是軟件技術(shù)的一次革命,在軟件開發(fā)史上具有里程碑的意義。 隨著OOP(面向?qū)ο缶幊蹋┫騉OD(面向?qū)ο笤O(shè)計)和OOA(面向?qū)ο蠓治觯┑陌l(fā)展,最終形成面向?qū)ο蟮能浖_發(fā)方法OMT(Object Modelling Technique)。
這是一種自底向上和自頂向下相結(jié)合的方法,而且它以對象建模為基礎(chǔ),從而不僅考慮了輸入、輸出數(shù)據(jù)結(jié)構(gòu),實際上也包含了所有對象的數(shù)據(jù)結(jié)構(gòu)。所以O(shè)MT徹底實現(xiàn)了PAM沒有完全實現(xiàn)的目標(biāo)。
不僅如此,OO技術(shù)在需求分析、可維護性和可靠性這三個軟件開發(fā)的關(guān)鍵環(huán)節(jié)和質(zhì)量指標(biāo)上有了實質(zhì)性的突破,徹底地解決了在這些方面存在的嚴(yán)重問題,從而宣告了軟件危機末日的來臨。
軟件開發(fā)一般分為五個階段:
1.問題的定義及規(guī)劃
此階段是軟件開發(fā)與需求放共同討論,主要確定軟件的開發(fā)目標(biāo)及其可行性。
2.需求分析
在確定軟件開發(fā)可行性的情況下,對軟件需要實現(xiàn)的各個功能進(jìn)行詳細(xì)需求分析。需求分析階段是一個很重要的階段,這一階段做的好,將為整個軟件項目的開發(fā)打下良好的基礎(chǔ)?!拔ㄒ徊蛔兊氖亲兓旧怼保瑯榆浖枨笠彩窃谲浖勰汩_發(fā)過程中不斷變化和深入的,因此,我們必須定制需求變更計劃來應(yīng)付這種變化,以保護整個項目的正常進(jìn)行。
3.軟件設(shè)計
此階段中偶要根據(jù)需求分析的結(jié)果,對整個軟件系統(tǒng)進(jìn)行設(shè)計,如系統(tǒng)框架設(shè)計、數(shù)據(jù)庫設(shè)計等。軟件設(shè)計一般分為總體設(shè)計和詳細(xì)設(shè)計。還的軟件設(shè)計將為軟件程序編寫打下良好的基礎(chǔ)。
4.程序編碼
此階段是將軟件設(shè)計的結(jié)果轉(zhuǎn)化為計算機可運行的程序代碼。在程序編碼中必定要制定統(tǒng)一、符合標(biāo)準(zhǔn)的編寫規(guī)范。以保證程序的可讀性、易維護性。提高程序的運行效率。
5.軟件測試
在軟件設(shè)計完成之后要進(jìn)行嚴(yán)密的測試,一發(fā)現(xiàn)軟件在整個軟件設(shè)計過程中存在的問題并加以糾正。整個測試階段分為單元測試、組裝測試、系統(tǒng)測試三個階段進(jìn)行。測試方法主要有白盒測試和黑盒測試。
軟件開發(fā)的內(nèi)容是:需求、設(shè)計、編程和測試!需求:不僅僅是用戶需求,應(yīng)該是開發(fā)中遇到的所有的需求。
比如,你首先要知道做這個項目是為了解決什么問題;測試案例中應(yīng)該輸入什么數(shù)據(jù)……為了清楚地知道這些需求,你經(jīng)常要和客戶、項目經(jīng)理等交流。設(shè)計:編碼前,肯定有個計劃告訴你要做什么,結(jié)構(gòu)是怎樣等等。
你一定要按照這個來做,否則可能會一團糟。編程:如果在項目截止日,你的程序不能跑起來或達(dá)不到客戶的要求,你就拿不到錢。
測試:目的是讓你知道,什么時候算是完成了。如果你聰明,你就應(yīng)該先寫測試,這樣可以及時知道你是否真地完成了。
否則,你經(jīng)常會不知道,到底有哪些功能是真正完成了,離預(yù)期目標(biāo)還差多遠(yuǎn)。軟件開發(fā)中,客戶和開發(fā)人員都有自己的基本權(quán)利和義務(wù)。
客戶:定義每個用戶需求的商業(yè)優(yōu)先級;制訂總體計劃,包括用多少投資、經(jīng)過多長時間、達(dá)到什么目的;在項目開發(fā)過程中的每個工作周,都能讓投資獲得最大的收益;通過重復(fù)運行你所指定的功能測試,準(zhǔn)確地掌握項目進(jìn)展情況;。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.743秒