【軟件定制開發】軟件開發方法有哪些(xiē)(二)


作(zuò)者:紅(hóng)掌網絡    訪問量:440    發布時(shí)間(jiān):2020-05-25 07:22


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