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


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


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