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