作(zuò)者:紅(hóng)掌網絡 訪問量:582 發布時(shí)間(jiān):2020-05-25 07:22
軟件開發方法有哪些(xiē)(一(yī))八種方法
【提綱】在軟件開發時(shí)期中,設計階段是最富有活力、最需要發揮創造精神的階段。本文通過對常用幾種軟件設計方法的研究,對軟件的開發有進一(yī)步的認識。同時(shí),也(yě)能(néng)通過對比得出哪些(xiē)設計方法對某一(yī)軟件的開發有更大的優勢,可以更好(hǎo)的指導我們實踐。
【關(guān)鍵字】軟件開發方法、常用軟件設計方法
一(yī)、引言
在軟件開發時(shí)期中,設計階段是最富有活力、最需要發揮創造精神的階段,軟件設計方法對軟件的開發以及投放(fàng)市(shì)場(chǎng)有着重要的作(zuò)用。在日常生(shēng)活中,常用的軟件工程設計方法有Parnas方法、Jackson (JSP/JSD) 方法、問題分(fēn)析方法(PAM)、面向對象的軟件開發方法(OO)、形式化(huà)方法、可視(shì)化(huà)方法、軟件重用。下(xià)面對這(zhè)幾種方法進行分(fēn)析研究。
(In software development, the design phase is the most dynamic and most need to play a creative stage, the software design method of software development and the market plays an important role. In daily life, the commonly used software engineering design method with Parnas, Jackson (JSP/JSD) method, the problem analysis method (PAM), object oriented (OO) software development methods, formal methods, visualization methods and software reuse. In the face of this paper studied the several methods.)
軟件開發方法有哪些(xiē)之-Parnas方法
最早軟件開發方法是由D.Parnas在1972年提出。由于當時(shí)軟件在可維護性和可靠性方面存在着嚴重問題,因此Parnas提出的方法是針對這(zhè)兩個(gè)問題的。首先,Parnas提出了(le)信息隐蔽原則:在概要設計時(shí)列出将來(lái)可能(néng)發生(shēng)變化(huà)的因素,并在模塊劃分(fēn)時(shí)将這(zhè)些(xiē)因素放(fàng)到個(gè)别模塊的内部。這(zhè)樣,在将來(lái)由于這(zhè)些(xiē)因素變化(huà)而需修改軟件時(shí),隻需修改個(gè)别的模塊,其它模塊不受影響。信息隐蔽技術不僅提高了(le)軟件的可維護性,而且也(yě)避免了(le)錯誤的蔓延,改善了(le)軟件的可靠性。現(xiàn)在信息隐蔽原則已成為(wèi)軟件工程學中的一(yī)條重要原則。Parnas提出第二條原則是在軟件設計時(shí)應對可能(néng)發生(shēng)的種種意外故障采取措施。軟件是很脆弱的,很可能(néng)因為(wèi)一(yī)個(gè)微小的錯誤而引發嚴重的事(shì)故,所以必須加強防範。如(rú)在分(fēn)配使用設備前,應該取設備狀态字,檢查設備是否正常。此外,模塊之間(jiān)也(yě)要加強檢查,防止錯誤蔓延。Parnas對軟件開發提出了(le)深刻的見解。遺憾的是,他沒有給出明确的工作(zuò)流程。所以這(zhè)一(yī)方法不能(néng)獨立使用,隻能(néng)作(zuò)為(wèi)其它方法的補充。
軟件開發方法有哪些(xiē)之-Jackson (JSP/JSD) 方法
1975年,M.A.Jackson提出了(le)一(yī)類至今仍廣泛使用的軟件開發方法。這(zhè)一(yī)方法從目标系統的輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節,就(jiù)可得到完整的程序結構圖。這(zhè)一(yī)方法對輸入、輸出數據結構明确的中小型系統特别有效,如(rú)商(shāng)業應用中的文件表格處理(lǐ)。該方法也(yě)可與其它方法結合,用于模塊的詳細設計。Jackson方法有時(shí)也(yě)稱為(wèi)面向數據結構的軟件設計方法。一(yī)般通過以下(xià)五個(gè)步驟來(lái)完成設計:1分(fēn)析并确定輸入數據和輸出數據的邏輯結構,并用Jackson結構圖來(lái)表示這(zhè)些(xiē)數據結構。2找出輸入數據結構和輸出數據結構中有對應關(guān)系的數據單元。3按以下(xià)的規則由輸入、輸出的數據結構導出程序結構。1)為(wèi)每一(yī)對在輸入數據結構和輸出數據結構中有對應關(guān)系的單元畫一(yī)個(gè)處理(lǐ)框。2)為(wèi)輸入和輸出數據結構中剩餘的數據單元畫一(yī)個(gè)處理(lǐ)框。3)所有處理(lǐ)框在程序結構圖上(shàng)的位置,應與由它處理(lǐ)的數據單元在數據結構Jackson圖上(shàng)的位置一(yī)緻。4)必要時(shí),可以對映射導出的程序結構圖進行進一(yī)步的細化(huà)。4列出基本操作(zuò)與條件,并把它們分(fēn)配到程序結構圖的适當位置。5用僞碼寫出程序。
3.1 JSP方法
JSP方法是傑克遜結構程序設計方法,是一(yī)種典型的面向數據結構的分(fēn)析和設計的方法。其主要設計思想是按輸入、輸出和内部信息的數據結構進行軟件設計的,把數據結構的描述變換成程序結構的描述,設計出反映數據結構的程序結構。JSP 方法将問題分(fēn)解為(wèi)順序、選擇和重複三種基本結構形式表示的層次結構如(rú)圖1 所示。這(zhè)樣對一(yī)個(gè)要解決的問題,總是要把解的結構設計成同問題的結構一(yī)樣,使程序既容易理(lǐ)解,又容易修改以滿足将來(lái)問題的變化(huà)。
JSP方法首先考察問題的環境,分(fēn)析所要處理(lǐ)的數據,作(zuò)出數據結構圖及圖示邏輯;再以數據結構為(wèi)基本點形成程序結構;最後列出進行處理(lǐ)所需要的基本操作(zuò),并把這(zhè)些(xiē)操作(zuò)分(fēn)配給程序結構中的适當部分(fēn)。
JSP 方法的優點是客觀,不依賴于設計者自己的創造和經驗,不同的設計者可以設計出同樣的解。簡單易學,用JSP 圖示邏輯可以很容易地導出Cobol程序,目前已研制出從JSP方法設計的結構自動導出Cobol 程序的工具。雖然JSP方法簡單易學,步驟規範,但(dàn)也(yě)存在着一(yī)些(xiē)局限性,最大的不足是當軟件系統的規模龐大時(shí),輸入和輸出之間(jiān)就(jiù)會出現(xiàn)大量複雜的信息,JSP 方法難于對付的結構沖突問題。可以利用中間(jiān)文件解決沖突,但(dàn)它明顯降低(dī)了(le)功效,而且從概念上(shàng)說(shuō)中間(jiān)文件也(yě)是不必要的;随着軟件系統規模的增大,且結構沖突的可能(néng)性及解決沖突的算(suàn)法複雜性亦随之增大。因此JSP 方法隻适用于小型程序的開發,隻是一(yī)種程序設計方法,并不适用于解決大型軟件的開發問題。
(JSP method has the advantage of objective, is not dependent on the designer's own creation and experience, different designers can design the same solution. Easy to learn, use JSP graphic logic can be easily exported Cobol program, has now developed the Cobol program is derived automatically from the JSP method to design the structure of the tool. Although JSP method is easy to learn, step standard, but there are also some limitations and the shortage of the biggest is that when large software system, between the input and output will appear a large number of complex information, JSP method is difficult to deal with the structure of the conflict. Can take advantage of the intermediate file conflict resolution, but it significantly reduces the effect, and conceptually intermediate file is unnecessary; With the increasing scale of software system, and the structure of the possibility of conflict and conflict resolution algorithm complexity also increase. So the JSP method applies only to the development of small procedures, is a kind of programming method, does not apply to solve the problem of large-scale software development.)
3.2 JSD方法
JSD方法是傑克遜系統開發方法,它以活動(即事(shì)件)為(wèi)中心,一(yī)連串活動的順序組合構成進程,系統模型抽象為(wèi)一(yī)組以通信方式互相聯系的進程。JSD方法的基本思想是仿真并描述客觀世界,然後添加輸出功能(néng),最後實現(xiàn)系統的轉換。它的基本步驟可分(fēn)為(wèi)六步,一(yī)是實體(tǐ)動作(zuò)分(fēn)析,從問題的描述中,提取軟件系統要産生(shēng)和運用的實體(tǐ)(人(rén)、物或組織) ,以及現(xiàn)實世界作(zuò)用于實體(tǐ)上(shàng)的動作(zuò)(事(shì)件);二是實體(tǐ)結構分(fēn)析,把作(zuò)用于實體(tǐ)的動作(zuò)或由實體(tǐ)執行的動作(zuò),按時(shí)間(jiān)發生(shēng)的先後次序排序,構成進程,并用一(yī)個(gè)層次的Jackson結構圖表示;三是定義初始模型步,把實體(tǐ)和動作(zuò)表示成一(yī)個(gè)進程模型,定義模型與現(xiàn)實世界的聯系。模型系統的規格說(shuō)明可用系統規格說(shuō)明圖來(lái)表示;四是功能(néng)描述,說(shuō)明與已定義的動作(zuò)相對應的功能(néng),為(wèi)已定義的動作(zuò)加入功能(néng)函數;五是決定系統時(shí)間(jiān)特性,對進程加入時(shí)間(jiān)因素,對進程調度特性進行評價和說(shuō)明;六是實現(xiàn),設計組成系統的硬件和軟件,實現(xiàn)系統的原型。前三步屬于需求分(fēn)析階段,後三步屬于設計階段。
JSD方法開創性地進行了(le)客觀世界及其同軟件間(jiān)關(guān)系的研究;明确了(le)軟件系統說(shuō)明決策同軟件系統實現(xiàn)決策的界限;做出容易的決策應該先于困難的決策;應當盡可能(néng)推遲最容易導緻錯誤的決策;含蓄的決策應當避免,不應有隐含的約定存在;如(rú)果一(yī)個(gè)決策易于出錯,應當盡早證實它的正确性;應當盡可能(néng)使決策之間(jiān)沒有依賴關(guān)系,使它們互不相關(guān)。其局限性是客觀世界及其同軟件間(jiān)關(guān)系的認識不完整;軟件系統實現(xiàn)結構過于複雜;軟件說(shuō)明結構的描述技術不恰當;JSD 中并不包含諸如(rú)選題,計劃管理(lǐ),代價P收益分(fēn)析等内容,也(yě)不包含實施環境問題的研究内容,這(zhè)在一(yī)定程度上(shàng)影響了(le)它的推廣應用;JSD 在實現(xiàn)階段所做的變換十分(fēn)費勁,以緻利用人(rén)的智力進行變換難以保證其有效性和可靠性,且變換的選擇又過于複雜,目前仍無法用計算(suàn)機自動實現(xiàn)。
以上(shàng)就(jiù)是給大家介紹的二種軟件開發方法,Parnas方法,Jackson (JSP/JSD) 方法。在下(xià)面的文章中将介紹其餘的六個(gè)軟件開發方法。