1. 軟體開發方法總結
在軟體開發的過程中,軟體開發方法是關繫到軟體開發成敗的重要因素。 軟體開發方法就是軟體開發所遵循的辦法和步驟,以保證所得到的運行系統和支持的文檔滿足質量要求,下面為大家分享了軟體開發方法,一起來看看吧!
1 結構化開發方法
結構指系統內各組成要素之間的相互聯系、相互作用的框架。結構化開發方法強調系統結構的合理性以及所開發的軟體的結構的合理性,主要是面向數據流的,因此也被稱為面向功能的軟體開發方法或面向數據流的軟體開發方法。結構化技術包括結構化分析、結構化設計和結構化程序設計三方面內容。
1.1 結構化分析的步驟
結構化分析是一種模型的確立活動,就是使用獨有的符號,來確立描繪信息(數據和控制)流和內容的模型,劃分系統的功能和行為,以及其他為確立模型不可缺少的描述。其基本步驟是:
(1)構造數據流模型:根據用戶當前需求,在創建實體—關系圖的基礎上,依據數據流圖構造數據流模型。
(2)構建控制流模型:一些應用系統除了要求用數據流建模外,通過構造控制流圖(CFD),構建控制流模型。
(3)生成數據字典:對所有數據元素的輸入、輸出、存儲結構,甚至是中間計算結果進行有組織的列表。目前一般採用CASE的「結構化分析和設計工具」來完成。
(4)生成可選方案,建立需求規約:確定各種方案的成本和風險等級,據此對各種方案進行分析,然後從中選擇一種方案,建立完整的需求規約。
1.2 結構化設計步驟
結構化設計是採用最佳的可能方法設計系統的各個組成部分以及各成分之間的內部聯系的技術,目的在於提出滿足系統需求的最佳軟體的結構,完成軟體層次圖或軟體結構圖。其基本步驟如下:
(1)研究、分析和審查數據流圖。從軟體的需求規格說明中弄清數據流加工的過程。
(2)然後根據數據流圖決定問題的類型。數據處理問題有兩種典型的類型:變換型和事務型。針對兩種不同的'類型分別進行分析處理。(3)由數據流圖推導出系統的初始結構圖。也就是把數據流圖映射到軟體模塊結構,設計出模塊結構的上層。
(4)利用一些試探性原則來改進系統的初始結構圖,直到得到符合要求的結構圖為止。即在數據流圖的基礎上逐步分解高層模塊,設計中下層模塊,並對軟體模塊結構進行優化,最終得到更為合理的軟體結構。
(5)描述模塊介面。
(6)修改和補充數據詞典。
(6)制定測試計劃。
結構化設計可以將用數據流圖表示的信息轉換成程序結構的設計描述。
2 模塊化開發方法
模塊化程序設計方法就是把一個待開發的軟體系統分解成若干可單獨命名和編址的較為簡單的部分,這些可單獨命名和編址的部分稱為模塊。每個模塊分別獨立地開發、測試,最後再組裝出整個軟體系統。這種方法不僅可以將軟體系統開發的復雜性在分解過程中降低,便於修改、維護,而且還容易實現同一個系統不同部分的並行開發,從而提高了軟體的生產效率。
一般,將用一個名字就可調用的一段程序稱為「模塊」。在考慮模塊化時,將模塊定義為多大較合適,模塊設計規則應如何制定成為關鍵,下面五條標准可供參考:
(1)模塊可分解性:如果一種設計方法提供了將問題分解成子問題的系統化機制,它就能降低整個系統的復雜性,從而實現一種有效的模塊化解決方案。
(2)模塊可組裝性:如果一種設計方法使現存的設計模塊能夠被組裝成新系統,它就能提供一種不用一切從頭開始的模塊化解決方案。
(3)模塊可理解性:如果一個模塊可以作為一個獨立的單位被理解,那麼它就易於構造和修改。(4)模塊連續性:如果對系統需求的微小修改只導致對單個模塊而不是對整個系統的修改,則修改引起的副作用就會被最小化。
一般來說,對模塊採用耦合和內聚兩個准則進行度量。如模塊內部具有高內聚和模塊間低耦合,那這樣的模塊就具有獨立性,模塊設計得比較好。
3 面向對象開發方法
面向對象開發方法是以面向對象程序設計語言作為基礎的,其核心思想是利用面向對象的概念和方法為軟體需求建立模型,進行系統設計,採用面向對象程序設計語言進行系統實現,對建成的系統進行面向對象的測試和維護。
如果一個軟體系統是使用這樣4個概念設計和實現的,則可以認為這個軟體系統是面向對象的。其基本要點可以概括為:
(1)數據的抽象,即類與子類的概念及相互關系。任何客觀的事物和實體都是對象,復雜對象可以由簡單對象組成
(2)數據及對它的操作的一體化,即封裝的概念和方法。具有相同數據和操作的對象可歸並為一個類,具有封裝性,形成一個包裝;對象是類的一個實例;一個類可以產生很多對象。
(3)屬性與操作由父類向子類傳遞,即繼承的概念與方法。類可以派生出子類,繼承能避免共同行為的重復。
(4)客觀事物之間的相互關系用統一的、消息傳遞的方法來描述。
目前廣泛使用的面向對象開發方法包括Booch方法、Rumbaugh方法、Coad和Yourdon方法、Jacobson方法、Wirfs-Brock方法和統一建模方法等。
2. 軟體開發可行性研究方法主要有哪四個方面
(1)經濟可行性:進行成本/效益分析。從經濟角度判斷系統開發是否「合算」。(2)技術可行性:進行技術風險評價。從開發者的技術實力、以往的工作基礎、問題的復雜性等出發,判斷系統開發在時間、費用等限制條件下成功的可能性。(3)法律可行性:確定系統開發可能導致的任何侵權、妨礙和責任。(4)方案的選擇:評價系統或產品開發的幾個可能的候選方案,最後給出結論意見
3. 面向功能的軟體開發方法
當今對於軟體系統的開發,不僅僅需要掌握計算機開發語言的編程技巧,更重要的是掌握一個軟體工程在需求分析、系統分析及測試階段所需要的工作技巧,即軟體的開發方法。國外大的軟體公司和機構一直在研究軟體開發方法這個概念性的東西,而且也提出了很多實際的開發方法,比如:生命周期法、原型化方法、面向對象方法等。
一、結構化方法
結構化開發方法是由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等開發工具的人一定不少,實際上這部分人就是在使用可視化開發工具。
當然,不可否認的是,使用這些可視化開發工具也只是在編程這個環節上用了可視化,而不是在系統分析和系統設計這個層次上用了可視化。實際上,建立系統分析和系統設計的可視化工具是一個很好的賣點,國外有很多工具開發商都在致力於這方面產品的設計。
可視化開發使我們的注意力集中在業務流程上,用戶界面可以通過可視化工具方便地構成。通過操作界面元素,諸如菜單、按鈕、對話框、編輯框、單選框、復選框、列表框和滾動條等,由可視化開發工具自動生成應用軟體。
《軟體開發的幾種方法》是由賢集網所整理科技文章,賢集網是中國領先的企業技術服務平台,專業從事企業技術支持服務,解決企業在實際生產中所遇到的各種技術難題,為國內廣大中小企業提供完整的技術解決方案。
4. 軟體開發可行性研究方法主要有哪四個方面(軟體工程開發的可行性研究是決定軟體項目)
軟體開發可行性研究是評估和確定計劃中軟體項目的可行性和可行性的過程。以下是軟體開發可行性研究中的四個主要方面:
1.技術可行性:
技術可行性評估了軟體項目所需的技術資源和技術能力是否可行和可實現。它考慮了所需的硬體、軟體、網路和技術架構等方面,以確定是否存在可行的技術解決方案。
2.經濟可行性:
經濟可行性評估了軟體項目在經濟方面的可行性。它包括對項目成本、投資回報率、運營成本、預期收益等方面的分析和評估,以確定項目的經濟可行性和盈利潛力。
3.法律和法規可行性:
法律和法規可行性評估了軟體項目在法律和法規方面的合規性和可行性。它考慮了相關的法律要求、知識產權、隱私保護、數據安全等方面,以確保項目符合法律和法規的要求。
4.運營可行性:
運營可行性評估了軟體項目在運營方面的可行性和可持續性。它考慮了項目的管理和組織結構、人力資源需求、市場需求、競爭情況等方面,以確定項目的運營可行性和成功的可能性。
這些方面的評估和分析將幫助決策者確定軟體項目的可行性和可行性,以便做出明智的決策和規劃。
以上內容是由豬八戒網精心整理,希望對您有所幫助。