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