【軟件定制開發】軟件開發方法有哪些(一)


作者:紅掌網絡    訪問量:588    發布時(shí)間:2020-05-25 07:22


軟件開發方法有哪些(一)八種方法
【提綱】在軟件開發時(shí)期中,設計階段是最富有活力、最需要發揮創造精神的(de)階段。本文通(tōng)過對(duì)常用(yòng)幾種軟件設計方法的(de)研究,對(duì)軟件的(de)開發有進一步的(de)認識。同時(shí),也(yě)能通(tōng)過對(duì)比得(de)出哪些設計方法對(duì)某一軟件的(de)開發有更大(dà)的(de)優勢,可(kě)以更好的(de)指導我們實踐。
【關鍵字】軟件開發方法、常用(yòng)軟件設計方法
一、引言
在軟件開發時(shí)期中,設計階段是最富有活力、最需要發揮創造精神的(de)階段,軟件設計方法對(duì)軟件的(de)開發以及投放市場(chǎng)有著(zhe)重要的(de)作用(yòng)。在日常生活中,常用(yòng)的(de)軟件工程設計方法有Parnas方法、Jackson (JSP/JSD) 方法、問題分(fēn)析方法(PAM)、面向對(duì)象的(de)軟件開發方法(OO)、形式化(huà)方法、可(kě)視化(huà)方法、軟件重用(yòng)。下(xià)面對(duì)這(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.)
軟件開發方法有哪些之-Parnas方法
最早軟件開發方法是由D.Parnas在1972年提出。由于當時(shí)軟件在可(kě)維護性和(hé)可(kě)靠性方面存在著(zhe)嚴重問題,因此Parnas提出的(de)方法是針對(duì)這(zhè)兩個(gè)問題的(de)。首先,Parnas提出了(le)信息隐蔽原則:在概要設計時(shí)列出将來(lái)可(kě)能發生變化(huà)的(de)因素,并在模塊劃分(fēn)時(shí)将這(zhè)些因素放到個(gè)别模塊的(de)内部。這(zhè)樣,在将來(lái)由于這(zhè)些因素變化(huà)而需修改軟件時(shí),隻需修改個(gè)别的(de)模塊,其它模塊不受影(yǐng)響。信息隐蔽技術不僅提高(gāo)了(le)軟件的(de)可(kě)維護性,而且也(yě)避免了(le)錯誤的(de)蔓延,改善了(le)軟件的(de)可(kě)靠性。現在信息隐蔽原則已成爲軟件工程學中的(de)一條重要原則。Parnas提出第二條原則是在軟件設計時(shí)應對(duì)可(kě)能發生的(de)種種意外故障采取措施。軟件是很脆弱的(de),很可(kě)能因爲一個(gè)微小的(de)錯誤而引發嚴重的(de)事故,所以必須加強防範。如在分(fēn)配使用(yòng)設備前,應該取設備狀态字,檢查設備是否正常。此外,模塊之間也(yě)要加強檢查,防止錯誤蔓延。Parnas對(duì)軟件開發提出了(le)深刻的(de)見解。遺憾的(de)是,他(tā)沒有給出明(míng)确的(de)工作流程。所以這(zhè)一方法不能獨立使用(yòng),隻能作爲其它方法的(de)補充。
軟件開發方法有哪些之-Jackson (JSP/JSD) 方法
1975年,M.A.Jackson提出了(le)一類至今仍廣泛使用(yòng)的(de)軟件開發方法。這(zhè)一方法從目标系統的(de)輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節,就可(kě)得(de)到完整的(de)程序結構圖。這(zhè)一方法對(duì)輸入、輸出數據結構明(míng)确的(de)中小型系統特别有效,如商業應用(yòng)中的(de)文件表格處理(lǐ)。該方法也(yě)可(kě)與其它方法結合,用(yòng)于模塊的(de)詳細設計。Jackson方法有時(shí)也(yě)稱爲面向數據結構的(de)軟件設計方法。一般通(tōng)過以下(xià)五個(gè)步驟來(lái)完成設計:1分(fēn)析并确定輸入數據和(hé)輸出數據的(de)邏輯結構,并用(yòng)Jackson結構圖來(lái)表示這(zhè)些數據結構。2找出輸入數據結構和(hé)輸出數據結構中有對(duì)應關系的(de)數據單元。3按以下(xià)的(de)規則由輸入、輸出的(de)數據結構導出程序結構。1)爲每一對(duì)在輸入數據結構和(hé)輸出數據結構中有對(duì)應關系的(de)單元畫(huà)一個(gè)處理(lǐ)框。2)爲輸入和(hé)輸出數據結構中剩餘的(de)數據單元畫(huà)一個(gè)處理(lǐ)框。3)所有處理(lǐ)框在程序結構圖上的(de)位置,應與由它處理(lǐ)的(de)數據單元在數據結構Jackson圖上的(de)位置一緻。4)必要時(shí),可(kě)以對(duì)映射導出的(de)程序結構圖進行進一步的(de)細化(huà)。4列出基本操作與條件,并把它們分(fēn)配到程序結構圖的(de)适當位置。5用(yòng)僞碼寫出程序。
3.1 JSP方法
JSP方法是傑克遜結構程序設計方法,是一種典型的(de)面向數據結構的(de)分(fēn)析和(hé)設計的(de)方法。其主要設計思想是按輸入、輸出和(hé)内部信息的(de)數據結構進行軟件設計的(de),把數據結構的(de)描述變換成程序結構的(de)描述,設計出反映數據結構的(de)程序結構。JSP 方法将問題分(fēn)解爲順序、選擇和(hé)重複三種基本結構形式表示的(de)層次結構如圖1 所示。這(zhè)樣對(duì)一個(gè)要解決的(de)問題,總是要把解的(de)結構設計成同問題的(de)結構一樣,使程序既容易理(lǐ)解,又容易修改以滿足将來(lái)問題的(de)變化(huà)。
JSP方法首先考察問題的(de)環境,分(fēn)析所要處理(lǐ)的(de)數據,作出數據結構圖及圖示邏輯;再以數據結構爲基本點形成程序結構;最後列出進行處理(lǐ)所需要的(de)基本操作,并把這(zhè)些操作分(fēn)配給程序結構中的(de)适當部分(fēn)。
JSP 方法的(de)優點是客觀,不依賴于設計者自己的(de)創造和(hé)經驗,不同的(de)設計者可(kě)以設計出同樣的(de)解。簡單易學,用(yòng)JSP 圖示邏輯可(kě)以很容易地導出Cobol程序,目前已研制出從JSP方法設計的(de)結構自動導出Cobol 程序的(de)工具。雖然JSP方法簡單易學,步驟規範,但也(yě)存在著(zhe)一些局限性,最大(dà)的(de)不足是當軟件系統的(de)規模龐大(dà)時(shí),輸入和(hé)輸出之間就會出現大(dà)量複雜(zá)的(de)信息,JSP 方法難于對(duì)付的(de)結構沖突問題。可(kě)以利用(yòng)中間文件解決沖突,但它明(míng)顯降低了(le)功效,而且從概念上說中間文件也(yě)是不必要的(de);随著(zhe)軟件系統規模的(de)增大(dà),且結構沖突的(de)可(kě)能性及解決沖突的(de)算(suàn)法複雜(zá)性亦随之增大(dà)。因此JSP 方法隻适用(yòng)于小型程序的(de)開發,隻是一種程序設計方法,并不适用(yòng)于解決大(dà)型軟件的(de)開發問題。
(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方法是傑克遜系統開發方法,它以活動(即事件)爲中心,一連串活動的(de)順序組合構成進程,系統模型抽象爲一組以通(tōng)信方式互相聯系的(de)進程。JSD方法的(de)基本思想是仿真并描述客觀世界,然後添加輸出功能,最後實現系統的(de)轉換。它的(de)基本步驟可(kě)分(fēn)爲六步,一是實體動作分(fēn)析,從問題的(de)描述中,提取軟件系統要産生和(hé)運用(yòng)的(de)實體(人(rén)、物(wù)或組織) ,以及現實世界作用(yòng)于實體上的(de)動作(事件);二是實體結構分(fēn)析,把作用(yòng)于實體的(de)動作或由實體執行的(de)動作,按時(shí)間發生的(de)先後次序排序,構成進程,并用(yòng)一個(gè)層次的(de)Jackson結構圖表示;三是定義初始模型步,把實體和(hé)動作表示成一個(gè)進程模型,定義模型與現實世界的(de)聯系。模型系統的(de)規格說明(míng)可(kě)用(yòng)系統規格說明(míng)圖來(lái)表示;四是功能描述,說明(míng)與已定義的(de)動作相對(duì)應的(de)功能,爲已定義的(de)動作加入功能函數;五是決定系統時(shí)間特性,對(duì)進程加入時(shí)間因素,對(duì)進程調度特性進行評價和(hé)說明(míng);六是實現,設計組成系統的(de)硬件和(hé)軟件,實現系統的(de)原型。前三步屬于需求分(fēn)析階段,後三步屬于設計階段。
JSD方法開創性地進行了(le)客觀世界及其同軟件間關系的(de)研究;明(míng)确了(le)軟件系統說明(míng)決策同軟件系統實現決策的(de)界限;做(zuò)出容易的(de)決策應該先于困難的(de)決策;應當盡可(kě)能推遲最容易導緻錯誤的(de)決策;含蓄的(de)決策應當避免,不應有隐含的(de)約定存在;如果一個(gè)決策易于出錯,應當盡早證實它的(de)正确性;應當盡可(kě)能使決策之間沒有依賴關系,使它們互不相關。其局限性是客觀世界及其同軟件間關系的(de)認識不完整;軟件系統實現結構過于複雜(zá);軟件說明(míng)結構的(de)描述技術不恰當;JSD 中并不包含諸如選題,計劃管理(lǐ),代價P收益分(fēn)析等内容,也(yě)不包含實施環境問題的(de)研究内容,這(zhè)在一定程度上影(yǐng)響了(le)它的(de)推廣應用(yòng);JSD 在實現階段所做(zuò)的(de)變換十分(fēn)費勁,以緻利用(yòng)人(rén)的(de)智力進行變換難以保證其有效性和(hé)可(kě)靠性,且變換的(de)選擇又過于複雜(zá),目前仍無法用(yòng)計算(suàn)機自動實現。
以上就是給大(dà)家介紹的(de)二種軟件開發方法,Parnas方法,Jackson (JSP/JSD) 方法。在下(xià)面的(de)文章(zhāng)中将介紹其餘的(de)六個(gè)軟件開發方法。