【軟件定制開(kāi)發】軟件開(kāi)發方法有哪些(二)


作者:紅掌網絡    訪問量:405    發布時間:2020-05-25 07:22


已經在上文介紹的三種軟件開(kāi)發方法,Parnas方法,Jackson (JSP/JSD) 方法。下(xià)面就介紹軟件開(kāi)發方法其它的六種方法,問題分(fēn)析法(PAM),面向對象的軟件開(kāi)發方法(OO),形式化方法,可視化方法,軟件重用方法.
軟件開(kāi)發方法有哪些之-問題分(fēn)析法(PAM)
PAM(Problem Analysis Method)是80年代末由日立公司提出的一(yī)種軟件開(kāi)發方法。PAM方法希望能兼顧Yourdon方法、Jackson方法和自底向上的軟件開(kāi)發方法的優點,而避免它們的缺陷。它的基本思想是:考慮到輸入、輸出數據結構,指導系統的分(fēn)解,在系統分(fēn)析指導下(xià)逐步綜合。這一(yī)方法的具體(tǐ)步驟是:從輸入、輸出數據結構導出基本處理框;分(fēn)析這些處理框之間的先後關系;按先後關系逐步綜合處理框,直到畫出整個系統的PAD圖。從上述步驟中(zhōng)可以看出,這一(yī)方法本質上是綜合的自底向上的方法,但在逐步綜合之前已進行了有目的的分(fēn)解,這個目的就是充分(fēn)考慮系統的輸入、輸出數據結構。PAM方法的另一(yī)個優點是使用PAD圖。這是一(yī)種二維樹(shù)形結構圖,是到目前爲止最好的詳細設計表示方法之一(yī),遠遠優于NS圖和PDL語言。這一(yī)方法在日本較爲流行,軟件開(kāi)發的成功率也很高。由于在輸入、輸出數據結構與整個系統之間同樣存在着鴻溝,這一(yī)方法仍隻适用于中(zhōng)小(xiǎo)型問題。
(PAM (Problem Analysis Method) is put forward by Hitachi in the late 80 s of a software development Method. PAM hope to be able to juggle Yourdon, Jackson method and the advantage of bottom-up software development method, to avoid the defects of them. Its basic idea is: considering the input and output data structures, guidance system decomposition, in the step by step under the guidance of integrated system analysis. Specific steps of this method is: from the input and output data structure basic processing export box; Analysis of the relation of before and after the processing box; According to successively relationship gradually integrated processing box, until the PAD diagram to draw the whole system. Can be seen from the above step, this approach is essentially a comprehensive bottom-up approach, but has been targeted before gradually integrated decomposition, the purpose is to give full consideration to the system input and output data structures. Another advantage of PAM method is to use the PAD diagram. This is a 2 d tree structure, is by far one of the best representation method for the detailed design, figure and the PDL language is much better than the NS. This method is more popular in Japan, the success rate of software development is also high. Due to the input and output data structures and also there is a gap between the whole system, this method still is only applicable to small and medium-sized problems.)
軟件開(kāi)發方法有哪些之-面向對象的軟件開(kāi)發方法(OO)
面向對象方法(Object-Oriented Method)是一(yī)種把面向對象的思想應用于軟件開(kāi)發過程中(zhōng),指導開(kāi)發活動的系統方法,簡稱OO(Object-Oriented)方法,是建立在對象”概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體(tǐ),與客觀實體(tǐ)有直接對應關系,一(yī)個對象類定義了具有相似性質的一(yī)組對象。而每繼承性是對具有層次關系的類的屬性和操作進行共享的一(yī)種方式。所謂面向對象就是基于對象概念,以對象爲中(zhōng)心,以類和繼承爲構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。面向對象方法的具體(tǐ)實施步驟如下(xià):
1:面向對象分(fēn)析(OOA(Object - Oriented Analysis)):從問題陳述入手,分(fēn)析和構造所關心的顯示世界問題域的模型,并用相應的符号系統表示。模型必須是簡潔、明确地抽象目标系統必須做的事,而不是如何做。分(fēn)析步驟爲:1)确定問題域,包括定義論域,選擇論域,根據需要細化和增加論域;2)區分(fēn)類和對象,包括定義對象,定義類、命名;3)區分(fēn)整體(tǐ)對象以及組成部分(fēn),确定類的關系以及結構;4)定義屬性,包括确定屬性,安排屬性;5)定義服務,包括确定對象狀态,确定所需服務,确定消息聯結;6)确定附加的系統約束。
2:面向對象設計(OOD(Object - oriented Design)):面向對象的設計與傳統的以功能分(fēn)解爲主的設計有所不同。具體(tǐ)設計步驟爲:1)應用面向對象分(fēn)析,對用其他方法得到的系統分(fēn)析的結果進行改進和完善;2)設計交互過程和用戶接口;設計任務管理,根據前一(yī)步驟确定是否需要多重任務,确定并發性,确定以何種方式驅動任務,設計子系統以及任務之間的協調與通信方式,确定優先級;4)設計全局資(zī)源,确定邊界條件,确定任務或子系統的軟、硬件分(fēn)配;5)對象設計。
3:面向對象實現:使用面向對象語言實現面向對象的設計相對比較容易。如果用非面向對象語言實現面向對象的設計時,特别需要注意和規定保留程序的面向對象結構。傳統的面向功能的方法學中(zhōng),強調的是确定和分(fēn)解系統功能,這種做法雖然是目标的最直接的實現方式,但是由于功能是軟件系統中(zhōng)最不穩定、最容易變化的方面,因而使系統難以維護和擴展。面向對象設計首先強調來自域的對象,然後圍繞對象設置屬性和操作。用面向對象設計,其結構源于客觀世界穩定的對象結構。因而與傳統軟件設計方法相比,明顯提高了軟件的生(shēng)産率,可靠性,易重用性、易維護性等方面的效果。
面向對象的軟件開(kāi)發方法方法的主要優點是,歸納和演繹思想的綜合體(tǐ)現;問題空間和解空間的同構;繼承機制的引入,很好的支持了重用性;對象機制有力地支持了信息隐藏的概念;多态性、持久性和動态聯編對程序設計起到了很好的作用。
面向對象的軟件開(kāi)發方法方法從計算機角度看有它巨大(dà)的優勢,但面向對象的軟件開(kāi)發方法方法在建立客觀系統模型方面有不足之處。面向對象分(fēn)析一(yī)開(kāi)始就有很多計算機方面的術語和概念不容易被一(yī)般用戶或參與應用軟件開(kāi)發的業務人員(yuán)所了解,即使了解了,也很難正确使用,爲真正掌握這些概念需要有一(yī)定的計算機背景知(zhī)識,所以面向對象分(fēn)析在應用軟件開(kāi)發中(zhōng),建立客戶系統的描述方面不能被普遍接受和推廣使用。
軟件開(kāi)發方法有哪些之-形式化方法
形式化方法(formal methods) 是保證計算機系統正确性的一(yī)種重要手段。這類方法用抽象的數學手段刻畫計算機軟硬件的結構及其性質,并通過形式證明等途徑來提高系統的可靠性。在使用形式化方法時,形式化規格說明(formal specification) 起着重要的作用。它的基本思想是,對系統建立一(yī)個數學模型,研究提供一(yī)種基于數學的形式語義學的軟件規格說明語言,用這種語言嚴格的描述所開(kāi)發的軟件功能,并由計算機完全機械地将它轉換成可執行代碼。其基本步驟:①定義形式化的規格說明語言;②對形式化的規格說明語言進行實現轉換,即形式化語言可由計算機自動處理,可利用相應的軟件工(gōng)具對規格說明進行分(fēn)析、查錯和驗證。形式化方法是以一(yī)定的數學概念和理論作基礎來指導軟件的開(kāi)發的,所以具有嚴格、規範的優點。同時也因爲要有較強的數學基礎,不能被普遍接受,形式化規格說明的理論和技術尚處于研究階段,未成熟到工(gōng)程應用的程度,因此該方法不太實用。
軟件開(kāi)發方法有哪些之-可視化方法
可視化開(kāi)發90年代軟件界最大(dà)的兩個熱點之一(yī)。随着圖形用戶界面的興起,用戶界面在軟件系統中(zhōng)所占的比例也越來越大(dà),有的高達60~70%。産生(shēng)這一(yī)問題的原因是圖形界面元素的生(shēng)成很不方便。爲此Windows提供了應用程序設計接口API(Application Programming Interface),它包含了600多個函數,極大(dà)地方便了圖形用戶界面的開(kāi)發。但是在這批函數中(zhōng),大(dà)量的函數參數和使用數量更多的有關常量,使基于Windows API的開(kāi)發變得相當困難。爲此Borland C++推出了Object Windows編程。它将API的各部分(fēn)用對象類進行封裝,提供了大(dà)量預定義的類,并爲這些定義了許多成員(yuán)函數。利用子類對父類的繼承性,以及實例對類的函數的引用,應用程序的開(kāi)發可以省卻大(dà)量類的定義,省卻大(dà)量成員(yuán)函數的定義或隻需作少量修改以定義子類。Object Windows還提供了許多标準的缺省處理,大(dà)大(dà)減少了應用程序開(kāi)發的工(gōng)作量。但要掌握它們,對非專業人員(yuán)來說仍是一(yī)個沉重的負擔。爲此人們利用Windows API或Borland C++的Object Windows開(kāi)發了一(yī)批可視開(kāi)發工(gōng)具。可視化開(kāi)發就是在可視開(kāi)發工(gōng)具提供的圖形用戶界面上,通過操作界面元素,諸如菜單(Menus)、按鈕(buttons)、對話(huà)框(dialog boxes)、編輯框(edit box)、單選框(radio buttons)、複選框(check boxes)、列表框(list boxes)和滾動條(scroll bars)等,由可視開(kāi)發工(gōng)具自動生(shēng)成應用軟件。這類應用軟件的工(gōng)作方式是事件驅動。對每一(yī)事件,由系統産生(shēng)相應的消息,再傳遞給相應的消息響應函數。這些消息響應函數是由可視開(kāi)發工(gōng)具在生(shēng)成軟件時自動裝入的。
軟件開(kāi)發方法有哪些之-軟件重用方法
軟件重用(Software Reuse,又(yòu)稱軟件複用或軟件再用)的概念對于大(dà)家并不陌生(shēng)。早在1968年的NATO軟件工(gōng)程會議上就已經提出可複用庫的思想。軟件重用的定義也很多,比較權威和通用的一(yī)種是:軟件重用是利用事先建立好的軟部品創建新軟件系統的過程。這個定義蘊含着軟件重用所必須包含的兩個方面:1)系統地開(kāi)發可重用的軟部品。這些軟部品可以是代碼,但不應該僅僅局限在代碼。我(wǒ)們必須從更廣泛和更高層次來理解,這樣才會帶來更大(dà)的重用收益。比如軟部品還可以是:分(fēn)析,設計,測試數據,原型,計劃,文檔,模闆,框架等等。2)系統地使用這些軟部品作爲構築模塊,來建立新的系統。
軟件重用的好處 能提高軟件生(shēng)成率:①縮短開(kāi)發周期 。②降低軟件開(kāi)發和維護費(fèi)用。③生(shēng)産更加标準化的軟件。 ④提高軟件開(kāi)發質量。 ⑤增強軟件系統的互操作性。⑥減少軟件開(kāi)發人員(yuán)數量。⑦使開(kāi)發人員(yuán)能比較容易的适應不同性質的項目開(kāi)發。
随着OO方法理論體(tǐ)系的完善,軟件複用的研究已經逐漸集中(zhōng)到了軟件構件技術上。構件技術是一(yī)種更高層次的對象技術,它是獨立于語言和面向應用程序,它隻規定構件的外(wài)在表現形式,而不關心其内部實現方法,它即可用OO 編程語言實現,也可用非OO 的過程語言實現。隻要遵循構件技術的規範,各個軟件開(kāi)發商(shāng)就可以用自己方便的語言去(qù)實現可被重用的構件。構件技術改變了軟件生(shēng)産方式,将軟件生(shēng)産劃分(fēn)爲構件生(shēng)産和構件集成兩個方面。開(kāi)發者專心于構件的生(shēng)産,集成者充分(fēn)利用構件,專心于應用。這樣的生(shēng)産模式具有如下(xià)優點:
(1) 有利于更合理地組織和使用人力和财力資(zī)源;
(2) 考慮到跨越軟件開(kāi)發組織的資(zī)源和信息共享;
(3) 提高了軟件複用程度,從而提高軟件生(shēng)産率和軟件質量。
軟構件技術(Software component technology)給軟件業帶來很大(dà)的影響。系統集成商(shāng)(System integrators)不再向以前那樣大(dà)量的做程序的編碼工(gōng)作,主要工(gōng)作将是評估和選定現有的軟構件,組裝成所需的系統。在未來新應用程序将會由構築模塊構成,這些構築模塊(building blocks)(如軟構件和應用程序框架)加快了産品的開(kāi)發速度和企業的應變能力。以設計模式,框架(The framework)和商(shāng)業構件形勢出現的軟部品可以通過重用顯著的提升開(kāi)發品質和生(shēng)産力,重用反過來也可以顯著的降低成本和縮短軟件開(kāi)發周期。未來應用程序(The application)的開(kāi)發依存于一(yī)個開(kāi)放(fàng)的,便利構件選擇和裝配的綜合體(tǐ)系結構。信息系統組織必須爲基于構件開(kāi)發制定一(yī)項戰略。這樣有助于形成明确分(fēn)工(gōng)又(yòu)全球共享的開(kāi)放(fàng)式軟件社會。軟構件代表了新一(yī)代軟件技術的發展方向。以上就是總結的軟件開(kāi)發方法有哪些的八種方法,問題分(fēn)析法(PAM),面向對象的軟件開(kāi)發方法(OO),形式化方法,可視化方法,軟件重用方法.已經在上文介紹的三種軟件開(kāi)發方法,Parnas方法,Jackson (JSP/JSD) 方法。