軟件工程基礎(chǔ)-火龍果軟件課件_第1頁
軟件工程基礎(chǔ)-火龍果軟件課件_第2頁
軟件工程基礎(chǔ)-火龍果軟件課件_第3頁
軟件工程基礎(chǔ)-火龍果軟件課件_第4頁
軟件工程基礎(chǔ)-火龍果軟件課件_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

--軟件過程模型軟件工程--軟件過程模型軟件工程軟件過程與軟件過程模型軟件工程方法面向功能的方法面向?qū)ο蠓椒▋?nèi)容提要軟件過程與軟件過程模型內(nèi)容提要軟件過程軟件過程是指開發(fā)軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。即是人們用于開發(fā)和維護(hù)軟件及其相關(guān)過程的一系列活動(dòng),包括軟件工程活動(dòng)和軟件管理活動(dòng)。軟件過程軟件過程是指開發(fā)軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。即是人們軟件過程模型軟件過程模型是從一特定角度提出的軟件過程的簡化描述。

“模型的本質(zhì)在于簡化”軟件過程模型就是對(duì)描述的實(shí)際過程的抽象,它包括構(gòu)成軟件過程的各種活動(dòng)、軟件產(chǎn)品及軟件工程人員參與的不同角色。軟件過程模型軟件過程模型是從一特定角度提出的軟件過程的簡化描軟件過程模型的分類以軟件需求完全確定為基礎(chǔ)的瀑布模型;在開發(fā)初期僅給出基本需求的漸進(jìn)式模型,如原型模型、螺旋模型、噴泉模型等;以形式化開發(fā)方法為基礎(chǔ)的變換模型、基于四代技術(shù)的模型(4G模型);基于知識(shí)的智能模型等等。

在實(shí)際開發(fā)時(shí),應(yīng)根據(jù)項(xiàng)目的特點(diǎn)和現(xiàn)有的條件選取合適的模型,也可以把幾種模型組合起來使用以便充分利用各模型的優(yōu)點(diǎn)。軟件過程模型的分類以軟件需求完全確定為基礎(chǔ)的瀑布模型;瀑布模型

瀑布模型(waterfallmodel)是由W.Royce于1970年提出來的。又稱為軟件生存周期模型。瀑布模型嚴(yán)格按照軟件生存周期各個(gè)階段來進(jìn)行開發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔)進(jìn)行評(píng)審,通過后才能開始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。瀑布模型 瀑布模型(waterfallmodel)是由W.瀑布模型

驗(yàn)收測試組裝測試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役可行性研究使用與維護(hù)特點(diǎn):階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)瀑布模型 驗(yàn)收測試組裝測試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役可瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人員采用的規(guī)范方法;嚴(yán)格規(guī)定了每一階段必須提交的文檔;要求每一階段交付之產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)審查;清晰區(qū)分了邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。

“一種文檔驅(qū)動(dòng)的模型”

提供了軟件開發(fā)的基本框架,有利于大型軟件開發(fā)過程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究與使用,因此,在軟件工程中占有重要的地位。瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人員采用的規(guī)范方法;瀑布模型的不足它將項(xiàng)目生硬的分解為確切的階段,委托事項(xiàng)一定要在過程的早期階段清晰給出,這意味著對(duì)用戶需求變更響應(yīng)困難。因?yàn)樯珊痛_認(rèn)文檔成本很高且很費(fèi)時(shí),因此經(jīng)過少量的反復(fù)后,要凍結(jié)部分開發(fā)過程,繼續(xù)進(jìn)行后面的開發(fā)階段。這種對(duì)需求的凍結(jié)使需求相當(dāng)不成熟,系統(tǒng)不能滿足用戶需求。作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性,對(duì)開發(fā)過程中很難發(fā)現(xiàn)錯(cuò)誤,只有在最終產(chǎn)品運(yùn)行時(shí)才能暴露出來,從而使軟件產(chǎn)品難以維護(hù)。瀑布模型的不足它將項(xiàng)目生硬的分解為確切的階段,委托事項(xiàng)一定要瀑布模型的適應(yīng)場合瀑布模型一般適用于功能、性能明確、完整、無重大變化的軟件系統(tǒng)的開發(fā)。例如操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)軟件的開發(fā)。應(yīng)用有一定的局限性。瀑布模型的適應(yīng)場合瀑布模型一般適用于功能、性能明確、完整、無原型模型

原型模型(prototypingmodel)的基本框架是軟件開發(fā)人員根據(jù)用戶提出的軟件基本需求快速開發(fā)一個(gè)原型,以便向用戶展示軟件系統(tǒng)應(yīng)有的部分或全部功能和性能,在征求用戶對(duì)原型的評(píng)價(jià)意見后,進(jìn)一步使需求精確化、完全化,并據(jù)此改進(jìn)、完善原型,如此迭代,直到軟件開發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測試等以后的各個(gè)開發(fā)步驟。原型模型 原型模型(prototypingmodel)的基快速原型方法建造/修改原型用戶測試運(yùn)行原型聽取用戶意見快速原型方法建造/修改原型用戶測試聽取用戶意見初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工開發(fā)產(chǎn)品開始結(jié)束用戶/客戶給出軟件產(chǎn)品的一般需求開發(fā)小組和用戶共同定義軟件總體目標(biāo),標(biāo)識(shí)已知需求對(duì)界面、功能、人機(jī)交互方式等,進(jìn)行設(shè)計(jì)并建造原型強(qiáng)調(diào)“快速”,釆用基于構(gòu)件的軟件開發(fā)方法,盡量縮短軟件開發(fā)周期,不宜釆用過多的新技術(shù)用戶/客戶對(duì)原型進(jìn)行評(píng)估修改需求、更新設(shè)計(jì)、完善原型直至確定需求。原型模型示意圖初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工快速原型的開發(fā)途徑僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。開發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。利用一個(gè)或幾個(gè)類似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。建造原型應(yīng)盡量采用相應(yīng)的軟件工具和環(huán)境,并盡量采用軟件重用技術(shù),在運(yùn)行效率方面可做出讓步,以便盡快提供。同時(shí),原型應(yīng)充分展示軟件系統(tǒng)的可見部分,如人機(jī)界面、數(shù)據(jù)的輸入方式和輸出格式等??焖僭偷拈_發(fā)途徑僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。建采用原型模型的軟件生命周期生成原型測試分析定義系統(tǒng)需求系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)含原型化的軟件生存期原型化運(yùn)行和維護(hù)編碼采用原型模型的軟件生命周期生成測試分析定義系統(tǒng)程序含原型化的原型模型的優(yōu)點(diǎn)原型模型比瀑布模型更符合人們認(rèn)識(shí)事物的過程和規(guī)律,是一種較實(shí)用的開發(fā)框架。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。原型的開發(fā)和評(píng)審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過程,每個(gè)迭代循環(huán)都是線性過程。原型模型的優(yōu)點(diǎn)原型模型比瀑布模型更符合人們認(rèn)識(shí)事物的過程和規(guī)原型模型的缺點(diǎn)對(duì)于大型軟件項(xiàng)目,原型模型需要足夠的人力資源以建立足夠的原型組。原型模型要求開發(fā)者和客戶在一段時(shí)間內(nèi)共同完成原型系統(tǒng)的開發(fā),如果任何一方?jīng)]有實(shí)現(xiàn)承諾,會(huì)導(dǎo)致原型開發(fā)的失敗。如果系統(tǒng)難以模塊化,建造原型所需構(gòu)件就有問題;如果高性能是一個(gè)指標(biāo),原型模型也可能不奏效。原型模型不適合采用很多新技術(shù)的項(xiàng)目。原型模型的缺點(diǎn)對(duì)于大型軟件項(xiàng)目,原型模型需要足夠的人力資源以原型模型的適應(yīng)場合它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā),更適合于那些項(xiàng)目組成員(包括分析員、設(shè)計(jì)員、程序員和用戶)不能很好交流或通信有困難的情況。原型模型的適應(yīng)場合它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)螺旋模型螺旋模型(spiralmodel)是B.Boehm于1988年提出的。它綜合了瀑布模型和原型模型的優(yōu)點(diǎn),即將兩者結(jié)合,并加入了風(fēng)險(xiǎn)分析機(jī)制。螺旋模型的基本框架如圖:螺旋模型螺旋模型(spiralmodel)是B.Boeh螺旋模型第一圈產(chǎn)生產(chǎn)品規(guī)格說明第二圈產(chǎn)生一個(gè)用于開發(fā)的原型第三圈產(chǎn)生軟件產(chǎn)品的初始版本第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本原型1原型2原型3風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析操作原型評(píng)審需求計(jì)劃和生存周期計(jì)劃操作的概念軟件需求需求有效性驗(yàn)證預(yù)估可選方案,明確并解決風(fēng)險(xiǎn)驗(yàn)收測試計(jì)劃組裝測試計(jì)劃規(guī)劃下階段工作設(shè)計(jì)驗(yàn)證與確認(rèn)產(chǎn)品設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測試組裝測試驗(yàn)收測試運(yùn)行維護(hù)開發(fā)驗(yàn)證下一級(jí)產(chǎn)品對(duì)目標(biāo)、可選方案和約束的確定提交線制定計(jì)劃風(fēng)險(xiǎn)分析實(shí)施工程客戶評(píng)估建模模擬評(píng)價(jià)需求評(píng)價(jià)需求精化計(jì)劃開發(fā)計(jì)劃實(shí)現(xiàn)計(jì)劃順時(shí)針為進(jìn)展方向螺旋模型第一圈產(chǎn)生產(chǎn)品規(guī)格說明第二圈產(chǎn)生一個(gè)用于開發(fā)的原螺旋模型

螺旋模型的每一個(gè)周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段。

1)計(jì)劃(需求定義) 首先開始利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步用戶需求,制定項(xiàng)目開發(fā)計(jì)劃(即整個(gè)軟件生命周期計(jì)劃)和需求分析計(jì)劃。然后根據(jù)用戶和開發(fā)人員對(duì)上一周期工作成果評(píng)價(jià)和評(píng)審,修改、完善需求,明確下一周期軟件開發(fā)的目標(biāo)、約束條件,并據(jù)此制定新一輪的軟件開發(fā)計(jì)劃。螺旋模型 螺旋模型的每一個(gè)周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分螺旋模型2)風(fēng)險(xiǎn)分析 根據(jù)本輪制定的開發(fā)計(jì)劃,進(jìn)行風(fēng)險(xiǎn)分析,評(píng)估可選方案,并構(gòu)造原型進(jìn)一步分析風(fēng)險(xiǎn),給出消除或減少風(fēng)險(xiǎn)的途徑。此時(shí)根據(jù)風(fēng)險(xiǎn)分析的結(jié)果決策項(xiàng)目是否繼續(xù)。所以,螺旋模型是一個(gè)風(fēng)險(xiǎn)驅(qū)動(dòng)的模型。3)工程實(shí)現(xiàn) 利用構(gòu)造的原型進(jìn)行需求建?;蜻M(jìn)行系統(tǒng)模擬,…,直至實(shí)現(xiàn)軟件系統(tǒng)。螺旋模型2)風(fēng)險(xiǎn)分析螺旋模型4)用戶評(píng)價(jià)與階段評(píng)審 將原型提交用戶使用并征求改進(jìn)意見。開發(fā)人員應(yīng)在用戶的密切配合下進(jìn)一步完善用戶需求,直到用戶認(rèn)為原型可滿足需求,或?qū)浖a(chǎn)品設(shè)計(jì)進(jìn)行評(píng)價(jià)或確認(rèn)等。

螺旋模型從第一個(gè)周期的計(jì)劃開始,一個(gè)周期、一個(gè)周期地不斷迭代,直到整個(gè)軟件系統(tǒng)開發(fā)完成。螺旋模型4)用戶評(píng)價(jià)與階段評(píng)審螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的可維護(hù)性,每次維護(hù)過程只是沿螺旋模型繼續(xù)多走一兩個(gè)周期。這符合人們認(rèn)識(shí)現(xiàn)實(shí)世界和軟件開發(fā)的客觀規(guī)律。原型可看作形式的可執(zhí)行的需求規(guī)格說明,易于為用戶和開發(fā)人員共同理解,還可作為繼續(xù)開發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。開發(fā)者和用戶共同參與軟件開發(fā),可盡早發(fā)現(xiàn)軟件中的錯(cuò)誤。螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的進(jìn)化貫穿整個(gè)軟件生存周期,這將有助于目標(biāo)軟件的適應(yīng)能力。既保持瀑布模型的系統(tǒng)性、階段性,又可利用原型評(píng)估降低開發(fā)風(fēng)險(xiǎn)。螺旋模型為項(xiàng)目管理人員及時(shí)調(diào)整管理決策提供了方便,進(jìn)而可降低開發(fā)風(fēng)險(xiǎn)。螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的可維護(hù)性螺旋模型的缺點(diǎn)如果每次迭代的效率不高,致使迭代次數(shù)過多,將會(huì)增加成本并推遲提交時(shí)間;使用該模型需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),要求開發(fā)隊(duì)伍水平較高。螺旋模型的缺點(diǎn)如果每次迭代的效率不高,致使迭代次數(shù)過多,將會(huì)螺旋模型適應(yīng)場合支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并支持面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,是一種具有廣闊前景的模型。螺旋模型適應(yīng)場合支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并變換模型變換模型是基于形式化規(guī)格說明語言以及程序變換技術(shù)的軟件系統(tǒng)開發(fā)模型,它主要用于軟件的形式化開發(fā)方法。在軟件需求分析確定以后,便用形式化的規(guī)格說明語言將其描述為“形式化軟件規(guī)格說明”,然后對(duì)其進(jìn)行一系列自動(dòng)或半自動(dòng)的變換,最終得到軟件系統(tǒng)的目標(biāo)程序。變換模型變換模型是基于形式化規(guī)格說明語言以及程序變換技術(shù)的軟變換模型形式化軟件規(guī)格說明(M0)模型檢查需求分析形式化軟件設(shè)計(jì)說明(M1)(M2)目標(biāo)程序(M)…變換變換模型形式化軟件規(guī)模型檢查需求分析形式化軟件設(shè)(M2)目標(biāo)變換模型變換模型也應(yīng)引入迭代機(jī)制。即將第一次用變換模型得來的目標(biāo)程序作為“原型”,讓用戶評(píng)價(jià),以便使用戶需求精確化、完全化,再把精化后的需求作為輸入,第二次用變換模型進(jìn)行變換,等等。以形式化開發(fā)方法為基礎(chǔ)的變換模型需要邏輯、代數(shù)等嚴(yán)格的數(shù)學(xué)理論和諸如形式化的需求規(guī)格說明語言、程序變換工具、定理證明工具等一整套開發(fā)環(huán)境的支持。形式化開發(fā)方法提出的比較早,但到目前為止,其在理論和實(shí)踐等方面離工程實(shí)際應(yīng)用還有較長一段距離。變換模型變換模型也應(yīng)引入迭代機(jī)制。即將第一次用變換模型得來的噴泉模型

噴泉模型是近幾年提出來的軟件生存周期模型。它是以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),以用戶需求為動(dòng)力,以對(duì)象來驅(qū)動(dòng)的模型。維護(hù)測試實(shí)現(xiàn)設(shè)計(jì)分析噴泉模型噴泉模型是近幾年提出來的軟件生存周期模型。它噴泉模型的特點(diǎn)軟件系統(tǒng)可維護(hù)性較好;各階段相互重疊,表明了面向?qū)ο箝_發(fā)方法各階段間的交叉和無縫過渡;整個(gè)模型是一個(gè)迭代的過程,包括一個(gè)階段內(nèi)部的迭代和跨階段的迭代;模型具有增量開發(fā)特性,即能做到分析一點(diǎn)、設(shè)計(jì)一點(diǎn)、實(shí)現(xiàn)一點(diǎn),測試一點(diǎn),使相關(guān)功能隨之加入到演化的系統(tǒng)中。模型是對(duì)象驅(qū)動(dòng)的,對(duì)象是各階段活動(dòng)的主體,也是項(xiàng)目管理的基本內(nèi)容。該模型很自然地支持軟部件的重用。噴泉模型的特點(diǎn)軟件系統(tǒng)可維護(hù)性較好;軟件工程方法軟件工程方法是完成軟件工程項(xiàng)目的技術(shù)手段。它支持軟件開發(fā)與維護(hù)的全部過程。軟件工程方法劃分為:面向功能的方法結(jié)構(gòu)化分析方法Jackson方法Warnier方法面向?qū)ο蠓椒║ML軟件工程方法是軟件開發(fā)的結(jié)構(gòu)化方法軟件工程過程是方法的使用活動(dòng)軟件工程方法軟件工程方法是完成軟件工程項(xiàng)目的技術(shù)手段。它支持結(jié)構(gòu)化分析方法一種面向數(shù)據(jù)流的開發(fā)方法。圖形表示方法為數(shù)據(jù)流圖(DFD)和模塊層次結(jié)構(gòu)圖(SC)?,F(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精,分解成若干個(gè)具有合適大小和功能的模塊并對(duì)各個(gè)模塊進(jìn)行定義和描述,其實(shí)質(zhì)就是功能分解和抽象。結(jié)構(gòu)化分析方法一種面向數(shù)據(jù)流的開發(fā)方法。圖形表示方法為數(shù)據(jù)流結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法SP法(StructuredProgram)70年代中結(jié)構(gòu)化設(shè)計(jì)方法SD法(StructuredDesign)70年代末結(jié)構(gòu)化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互銜接,形成了一整套開發(fā)方法。若將SA,SD法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù),即SDAT技術(shù)。結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法SP法(StJackson方法Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,它首先分析數(shù)據(jù)的層次結(jié)構(gòu),生成輸入、輸出數(shù)據(jù)結(jié)構(gòu)圖,把處理模塊化,并在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計(jì)和編程。Jackson方法有JSP(JacksonStructureProgramming)和改進(jìn)的JSD(JacksonSystemdevelopment)方法。Jackson方法Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法的發(fā)展二十世紀(jì)七十年代Jackson提出了軟件工程領(lǐng)域中著名的Jackson方法,當(dāng)時(shí)它只用于軟件設(shè)計(jì)。二十世紀(jì)八十年代初,Jackson又對(duì)它進(jìn)行了多方面的擴(kuò)充和完善,最終發(fā)展成為一種需求分析方法。Jackson方法的核心思想是: 根據(jù)作用于數(shù)據(jù)的行為序列的結(jié)構(gòu)(順序、選擇與重復(fù)),建立目標(biāo)軟件系統(tǒng)的模型,然后在軟件設(shè)計(jì)階段將模型演化為相應(yīng)的程序結(jié)構(gòu)。Jackson方法的發(fā)展二十世紀(jì)七十年代Jackson提出了Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu)。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖。列出所有的操作和條件,并把他們分配到程序結(jié)構(gòu)圖中去。Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏Jackson圖的基本類型順序結(jié)構(gòu)重復(fù)結(jié)構(gòu)選擇結(jié)構(gòu)*表示重復(fù)O表示選擇一個(gè)分支AB*ABCDABCDOOOJackson圖的基本類型順序結(jié)構(gòu)重復(fù)結(jié)構(gòu)選擇結(jié)構(gòu)*表示重復(fù)Jackson的偽代碼1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的偽碼如下,其中‘seq’和‘end’是關(guān)鍵字:

Aseq

B

C

D

AendJackson的偽代碼1)順序結(jié)構(gòu)Jackson的偽代碼2)選擇結(jié)構(gòu)‘select’、‘or’,和‘end’是關(guān)鍵字,cond1、cond2和cond3分別是執(zhí)行B、C或D的條件:選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼如下:

Aselectcond1

B

Aorcond2

C

Aorcond3

D

AendJackson的偽代碼2)選擇結(jié)構(gòu)Jackson的偽代碼3)重復(fù)結(jié)構(gòu)‘iter’、‘until’、‘while’和‘end’是關(guān)鍵字(重復(fù)結(jié)構(gòu)有until和while兩種形式),cond是條件,重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼圖象:

Aiteruntil(或while)cond

B

AendJackson的偽代碼3)重復(fù)結(jié)構(gòu)Warnier方法它也是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,它將軟件系統(tǒng)當(dāng)做模型來進(jìn)行描述,再逐步轉(zhuǎn)換成目標(biāo)系統(tǒng)。Warnier方法與Jackson方法差別如下:它們使用的圖形工具不同:分別使用Warnier圖和Jackson圖;使用的偽碼不同;最主要的差別是在構(gòu)造程序框架時(shí),Warnier方法僅考慮輸入數(shù)據(jù)結(jié)構(gòu),而Jackson方法不僅考慮輸入數(shù)據(jù)結(jié)構(gòu),而且還考慮輸出數(shù)據(jù)結(jié)構(gòu)。

Warnier方法它也是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,它將軟件Warnier方法的圖元素{表示屬于數(shù)據(jù)結(jié)構(gòu)的同一層次⊕表示在一定條件下才出現(xiàn),幾個(gè)數(shù)據(jù)只能出現(xiàn)一個(gè)()指明這類數(shù)據(jù)重復(fù)出現(xiàn)的次數(shù)某大學(xué)系(8){專業(yè)(P1)處(5){科(P2)部(3)室(2)例:Warnier方法的圖元素{表示屬于數(shù)據(jù)結(jié)構(gòu)的同一層次某大面向?qū)ο蠓椒嫦驅(qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來的軟件分析設(shè)計(jì)方法。該方法把客觀世界的事物或?qū)嶓w都看成對(duì)象,把對(duì)象作為分析設(shè)計(jì)的基本元素,把所有對(duì)象都劃分成對(duì)象類,類可以派生和繼承,對(duì)每個(gè)對(duì)象類都定義一組數(shù)據(jù)和方法。面向?qū)ο蠓椒ò嫦驅(qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)和面向?qū)ο髮?shí)現(xiàn),是近年來取得迅速發(fā)展并具有強(qiáng)大生命力的軟件開發(fā)方法,被譽(yù)為90年代軟件的核心技術(shù)之一。

面向?qū)ο蠓椒嫦驅(qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來的軟件分一些軟件工程專家在提出自己的OO方法時(shí),也提出了自己的建模語言;用戶并不了解不同建模語言的優(yōu)缺點(diǎn),在實(shí)際工作中很難選擇合適的建模語言;不同建模語言之間存在的細(xì)微差別極大地妨礙了用戶之間的交流;OO要健康發(fā)展,必須在精心比較不同建模語言優(yōu)缺點(diǎn)的基礎(chǔ)上,把建模語言同一起來;Booch,Rumbaugh和Jacobson經(jīng)過合作研究,于1996年提出了統(tǒng)一建模語言UML;1997年11月,國際對(duì)象管理組織OMG批準(zhǔn)把UML作為OO技術(shù)的標(biāo)準(zhǔn)建模語言。UML(統(tǒng)一建模語言)一些軟件工程專家在提出自己的OO方法時(shí),也提出了自己的建模語UML(統(tǒng)一建模語言)UML是為了簡化和強(qiáng)化現(xiàn)有的大量面向?qū)ο箝_發(fā)方法這一目的而開發(fā)的。UML在設(shè)計(jì)時(shí)候借鑒、集成了面向功能方法的優(yōu)點(diǎn)。統(tǒng)一建模語言是一個(gè)通用的可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它記錄了對(duì)必須構(gòu)造的系統(tǒng)的決定和理解,可用于對(duì)系統(tǒng)的理解、設(shè)計(jì)、瀏覽、配置、維護(hù)和信息控制。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開發(fā)工具,是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。UML(統(tǒng)一建模語言)UML是為了簡化和強(qiáng)化現(xiàn)有的大量面向?qū)ML(統(tǒng)一建模語言)UML包括概念的語義,表示法和說明,提供了靜態(tài)、動(dòng)態(tài)、系統(tǒng)環(huán)境及組織結(jié)構(gòu)的模型。UML可被交互的可視化建模工具所支持,這些工具提供了代碼生成器和報(bào)表生成器。UML標(biāo)準(zhǔn)并沒有定義一種標(biāo)準(zhǔn)的開發(fā)過程,但它適用于迭代式的開發(fā)過程。它是為支持大部分現(xiàn)存的面向?qū)ο箝_發(fā)過程而設(shè)計(jì)的。UML(統(tǒng)一建模語言)UML包括概念的語義,表示法和說明,提UML(統(tǒng)一建模語言)UML描述了一個(gè)系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為。它將系統(tǒng)描述為一些離散的相互作用的對(duì)象并最終為外部用戶提供一定功能的模型結(jié)構(gòu)。靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中重要對(duì)象的屬性和操作以及這些對(duì)象之間的相互關(guān)系。動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)而相互進(jìn)行通信的機(jī)制。UML(統(tǒng)一建模語言)UML描述了一個(gè)系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行UML(統(tǒng)一建模語言)UML還包括可將模型分解成包的結(jié)構(gòu)組件,以便于軟件小組將大的系統(tǒng)分解成易于處理的塊結(jié)構(gòu),并理解和控制各個(gè)包之間的依賴關(guān)系,在復(fù)雜的開發(fā)環(huán)境中管理模型單元。它還包括用于顯示系統(tǒng)實(shí)現(xiàn)和組織運(yùn)行的組件。UML(統(tǒng)一建模語言)UML還包括可將模型分解成包的結(jié)構(gòu)組件--軟件過程模型軟件工程--軟件過程模型軟件工程軟件過程與軟件過程模型軟件工程方法面向功能的方法面向?qū)ο蠓椒▋?nèi)容提要軟件過程與軟件過程模型內(nèi)容提要軟件過程軟件過程是指開發(fā)軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。即是人們用于開發(fā)和維護(hù)軟件及其相關(guān)過程的一系列活動(dòng),包括軟件工程活動(dòng)和軟件管理活動(dòng)。軟件過程軟件過程是指開發(fā)軟件產(chǎn)品的一組活動(dòng)及其結(jié)果。即是人們軟件過程模型軟件過程模型是從一特定角度提出的軟件過程的簡化描述。

“模型的本質(zhì)在于簡化”軟件過程模型就是對(duì)描述的實(shí)際過程的抽象,它包括構(gòu)成軟件過程的各種活動(dòng)、軟件產(chǎn)品及軟件工程人員參與的不同角色。軟件過程模型軟件過程模型是從一特定角度提出的軟件過程的簡化描軟件過程模型的分類以軟件需求完全確定為基礎(chǔ)的瀑布模型;在開發(fā)初期僅給出基本需求的漸進(jìn)式模型,如原型模型、螺旋模型、噴泉模型等;以形式化開發(fā)方法為基礎(chǔ)的變換模型、基于四代技術(shù)的模型(4G模型);基于知識(shí)的智能模型等等。

在實(shí)際開發(fā)時(shí),應(yīng)根據(jù)項(xiàng)目的特點(diǎn)和現(xiàn)有的條件選取合適的模型,也可以把幾種模型組合起來使用以便充分利用各模型的優(yōu)點(diǎn)。軟件過程模型的分類以軟件需求完全確定為基礎(chǔ)的瀑布模型;瀑布模型

瀑布模型(waterfallmodel)是由W.Royce于1970年提出來的。又稱為軟件生存周期模型。瀑布模型嚴(yán)格按照軟件生存周期各個(gè)階段來進(jìn)行開發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔)進(jìn)行評(píng)審,通過后才能開始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。瀑布模型 瀑布模型(waterfallmodel)是由W.瀑布模型

驗(yàn)收測試組裝測試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役可行性研究使用與維護(hù)特點(diǎn):階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)瀑布模型 驗(yàn)收測試組裝測試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役可瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人員采用的規(guī)范方法;嚴(yán)格規(guī)定了每一階段必須提交的文檔;要求每一階段交付之產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)審查;清晰區(qū)分了邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn)。

“一種文檔驅(qū)動(dòng)的模型”

提供了軟件開發(fā)的基本框架,有利于大型軟件開發(fā)過程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究與使用,因此,在軟件工程中占有重要的地位。瀑布模型的優(yōu)點(diǎn)可強(qiáng)迫開發(fā)人員采用的規(guī)范方法;瀑布模型的不足它將項(xiàng)目生硬的分解為確切的階段,委托事項(xiàng)一定要在過程的早期階段清晰給出,這意味著對(duì)用戶需求變更響應(yīng)困難。因?yàn)樯珊痛_認(rèn)文檔成本很高且很費(fèi)時(shí),因此經(jīng)過少量的反復(fù)后,要凍結(jié)部分開發(fā)過程,繼續(xù)進(jìn)行后面的開發(fā)階段。這種對(duì)需求的凍結(jié)使需求相當(dāng)不成熟,系統(tǒng)不能滿足用戶需求。作為整體開發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性,對(duì)開發(fā)過程中很難發(fā)現(xiàn)錯(cuò)誤,只有在最終產(chǎn)品運(yùn)行時(shí)才能暴露出來,從而使軟件產(chǎn)品難以維護(hù)。瀑布模型的不足它將項(xiàng)目生硬的分解為確切的階段,委托事項(xiàng)一定要瀑布模型的適應(yīng)場合瀑布模型一般適用于功能、性能明確、完整、無重大變化的軟件系統(tǒng)的開發(fā)。例如操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)軟件的開發(fā)。應(yīng)用有一定的局限性。瀑布模型的適應(yīng)場合瀑布模型一般適用于功能、性能明確、完整、無原型模型

原型模型(prototypingmodel)的基本框架是軟件開發(fā)人員根據(jù)用戶提出的軟件基本需求快速開發(fā)一個(gè)原型,以便向用戶展示軟件系統(tǒng)應(yīng)有的部分或全部功能和性能,在征求用戶對(duì)原型的評(píng)價(jià)意見后,進(jìn)一步使需求精確化、完全化,并據(jù)此改進(jìn)、完善原型,如此迭代,直到軟件開發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測試等以后的各個(gè)開發(fā)步驟。原型模型 原型模型(prototypingmodel)的基快速原型方法建造/修改原型用戶測試運(yùn)行原型聽取用戶意見快速原型方法建造/修改原型用戶測試聽取用戶意見初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工開發(fā)產(chǎn)品開始結(jié)束用戶/客戶給出軟件產(chǎn)品的一般需求開發(fā)小組和用戶共同定義軟件總體目標(biāo),標(biāo)識(shí)已知需求對(duì)界面、功能、人機(jī)交互方式等,進(jìn)行設(shè)計(jì)并建造原型強(qiáng)調(diào)“快速”,釆用基于構(gòu)件的軟件開發(fā)方法,盡量縮短軟件開發(fā)周期,不宜釆用過多的新技術(shù)用戶/客戶對(duì)原型進(jìn)行評(píng)估修改需求、更新設(shè)計(jì)、完善原型直至確定需求。原型模型示意圖初步需求分析快速設(shè)計(jì)建造原型用戶評(píng)估原型(新需求)對(duì)原型加工快速原型的開發(fā)途徑僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。開發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。利用一個(gè)或幾個(gè)類似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。建造原型應(yīng)盡量采用相應(yīng)的軟件工具和環(huán)境,并盡量采用軟件重用技術(shù),在運(yùn)行效率方面可做出讓步,以便盡快提供。同時(shí),原型應(yīng)充分展示軟件系統(tǒng)的可見部分,如人機(jī)界面、數(shù)據(jù)的輸入方式和輸出格式等??焖僭偷拈_發(fā)途徑僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。建采用原型模型的軟件生命周期生成原型測試分析定義系統(tǒng)需求系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)含原型化的軟件生存期原型化運(yùn)行和維護(hù)編碼采用原型模型的軟件生命周期生成測試分析定義系統(tǒng)程序含原型化的原型模型的優(yōu)點(diǎn)原型模型比瀑布模型更符合人們認(rèn)識(shí)事物的過程和規(guī)律,是一種較實(shí)用的開發(fā)框架。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。原型的開發(fā)和評(píng)審是系統(tǒng)分析員和用戶/客戶共同參予的迭代過程,每個(gè)迭代循環(huán)都是線性過程。原型模型的優(yōu)點(diǎn)原型模型比瀑布模型更符合人們認(rèn)識(shí)事物的過程和規(guī)原型模型的缺點(diǎn)對(duì)于大型軟件項(xiàng)目,原型模型需要足夠的人力資源以建立足夠的原型組。原型模型要求開發(fā)者和客戶在一段時(shí)間內(nèi)共同完成原型系統(tǒng)的開發(fā),如果任何一方?jīng)]有實(shí)現(xiàn)承諾,會(huì)導(dǎo)致原型開發(fā)的失敗。如果系統(tǒng)難以模塊化,建造原型所需構(gòu)件就有問題;如果高性能是一個(gè)指標(biāo),原型模型也可能不奏效。原型模型不適合采用很多新技術(shù)的項(xiàng)目。原型模型的缺點(diǎn)對(duì)于大型軟件項(xiàng)目,原型模型需要足夠的人力資源以原型模型的適應(yīng)場合它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開發(fā),更適合于那些項(xiàng)目組成員(包括分析員、設(shè)計(jì)員、程序員和用戶)不能很好交流或通信有困難的情況。原型模型的適應(yīng)場合它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)螺旋模型螺旋模型(spiralmodel)是B.Boehm于1988年提出的。它綜合了瀑布模型和原型模型的優(yōu)點(diǎn),即將兩者結(jié)合,并加入了風(fēng)險(xiǎn)分析機(jī)制。螺旋模型的基本框架如圖:螺旋模型螺旋模型(spiralmodel)是B.Boeh螺旋模型第一圈產(chǎn)生產(chǎn)品規(guī)格說明第二圈產(chǎn)生一個(gè)用于開發(fā)的原型第三圈產(chǎn)生軟件產(chǎn)品的初始版本第四圈產(chǎn)生軟件產(chǎn)品比較完善的新版本原型1原型2原型3風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析操作原型評(píng)審需求計(jì)劃和生存周期計(jì)劃操作的概念軟件需求需求有效性驗(yàn)證預(yù)估可選方案,明確并解決風(fēng)險(xiǎn)驗(yàn)收測試計(jì)劃組裝測試計(jì)劃規(guī)劃下階段工作設(shè)計(jì)驗(yàn)證與確認(rèn)產(chǎn)品設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼單元測試組裝測試驗(yàn)收測試運(yùn)行維護(hù)開發(fā)驗(yàn)證下一級(jí)產(chǎn)品對(duì)目標(biāo)、可選方案和約束的確定提交線制定計(jì)劃風(fēng)險(xiǎn)分析實(shí)施工程客戶評(píng)估建模模擬評(píng)價(jià)需求評(píng)價(jià)需求精化計(jì)劃開發(fā)計(jì)劃實(shí)現(xiàn)計(jì)劃順時(shí)針為進(jìn)展方向螺旋模型第一圈產(chǎn)生產(chǎn)品規(guī)格說明第二圈產(chǎn)生一個(gè)用于開發(fā)的原螺旋模型

螺旋模型的每一個(gè)周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段。

1)計(jì)劃(需求定義) 首先開始利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步用戶需求,制定項(xiàng)目開發(fā)計(jì)劃(即整個(gè)軟件生命周期計(jì)劃)和需求分析計(jì)劃。然后根據(jù)用戶和開發(fā)人員對(duì)上一周期工作成果評(píng)價(jià)和評(píng)審,修改、完善需求,明確下一周期軟件開發(fā)的目標(biāo)、約束條件,并據(jù)此制定新一輪的軟件開發(fā)計(jì)劃。螺旋模型 螺旋模型的每一個(gè)周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分螺旋模型2)風(fēng)險(xiǎn)分析 根據(jù)本輪制定的開發(fā)計(jì)劃,進(jìn)行風(fēng)險(xiǎn)分析,評(píng)估可選方案,并構(gòu)造原型進(jìn)一步分析風(fēng)險(xiǎn),給出消除或減少風(fēng)險(xiǎn)的途徑。此時(shí)根據(jù)風(fēng)險(xiǎn)分析的結(jié)果決策項(xiàng)目是否繼續(xù)。所以,螺旋模型是一個(gè)風(fēng)險(xiǎn)驅(qū)動(dòng)的模型。3)工程實(shí)現(xiàn) 利用構(gòu)造的原型進(jìn)行需求建?;蜻M(jìn)行系統(tǒng)模擬,…,直至實(shí)現(xiàn)軟件系統(tǒng)。螺旋模型2)風(fēng)險(xiǎn)分析螺旋模型4)用戶評(píng)價(jià)與階段評(píng)審 將原型提交用戶使用并征求改進(jìn)意見。開發(fā)人員應(yīng)在用戶的密切配合下進(jìn)一步完善用戶需求,直到用戶認(rèn)為原型可滿足需求,或?qū)浖a(chǎn)品設(shè)計(jì)進(jìn)行評(píng)價(jià)或確認(rèn)等。

螺旋模型從第一個(gè)周期的計(jì)劃開始,一個(gè)周期、一個(gè)周期地不斷迭代,直到整個(gè)軟件系統(tǒng)開發(fā)完成。螺旋模型4)用戶評(píng)價(jià)與階段評(píng)審螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的可維護(hù)性,每次維護(hù)過程只是沿螺旋模型繼續(xù)多走一兩個(gè)周期。這符合人們認(rèn)識(shí)現(xiàn)實(shí)世界和軟件開發(fā)的客觀規(guī)律。原型可看作形式的可執(zhí)行的需求規(guī)格說明,易于為用戶和開發(fā)人員共同理解,還可作為繼續(xù)開發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。開發(fā)者和用戶共同參與軟件開發(fā),可盡早發(fā)現(xiàn)軟件中的錯(cuò)誤。螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的進(jìn)化貫穿整個(gè)軟件生存周期,這將有助于目標(biāo)軟件的適應(yīng)能力。既保持瀑布模型的系統(tǒng)性、階段性,又可利用原型評(píng)估降低開發(fā)風(fēng)險(xiǎn)。螺旋模型為項(xiàng)目管理人員及時(shí)調(diào)整管理決策提供了方便,進(jìn)而可降低開發(fā)風(fēng)險(xiǎn)。螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。支持軟件系統(tǒng)的可維護(hù)性螺旋模型的缺點(diǎn)如果每次迭代的效率不高,致使迭代次數(shù)過多,將會(huì)增加成本并推遲提交時(shí)間;使用該模型需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專門知識(shí),要求開發(fā)隊(duì)伍水平較高。螺旋模型的缺點(diǎn)如果每次迭代的效率不高,致使迭代次數(shù)過多,將會(huì)螺旋模型適應(yīng)場合支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并支持面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,是一種具有廣闊前景的模型。螺旋模型適應(yīng)場合支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并變換模型變換模型是基于形式化規(guī)格說明語言以及程序變換技術(shù)的軟件系統(tǒng)開發(fā)模型,它主要用于軟件的形式化開發(fā)方法。在軟件需求分析確定以后,便用形式化的規(guī)格說明語言將其描述為“形式化軟件規(guī)格說明”,然后對(duì)其進(jìn)行一系列自動(dòng)或半自動(dòng)的變換,最終得到軟件系統(tǒng)的目標(biāo)程序。變換模型變換模型是基于形式化規(guī)格說明語言以及程序變換技術(shù)的軟變換模型形式化軟件規(guī)格說明(M0)模型檢查需求分析形式化軟件設(shè)計(jì)說明(M1)(M2)目標(biāo)程序(M)…變換變換模型形式化軟件規(guī)模型檢查需求分析形式化軟件設(shè)(M2)目標(biāo)變換模型變換模型也應(yīng)引入迭代機(jī)制。即將第一次用變換模型得來的目標(biāo)程序作為“原型”,讓用戶評(píng)價(jià),以便使用戶需求精確化、完全化,再把精化后的需求作為輸入,第二次用變換模型進(jìn)行變換,等等。以形式化開發(fā)方法為基礎(chǔ)的變換模型需要邏輯、代數(shù)等嚴(yán)格的數(shù)學(xué)理論和諸如形式化的需求規(guī)格說明語言、程序變換工具、定理證明工具等一整套開發(fā)環(huán)境的支持。形式化開發(fā)方法提出的比較早,但到目前為止,其在理論和實(shí)踐等方面離工程實(shí)際應(yīng)用還有較長一段距離。變換模型變換模型也應(yīng)引入迭代機(jī)制。即將第一次用變換模型得來的噴泉模型

噴泉模型是近幾年提出來的軟件生存周期模型。它是以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),以用戶需求為動(dòng)力,以對(duì)象來驅(qū)動(dòng)的模型。維護(hù)測試實(shí)現(xiàn)設(shè)計(jì)分析噴泉模型噴泉模型是近幾年提出來的軟件生存周期模型。它噴泉模型的特點(diǎn)軟件系統(tǒng)可維護(hù)性較好;各階段相互重疊,表明了面向?qū)ο箝_發(fā)方法各階段間的交叉和無縫過渡;整個(gè)模型是一個(gè)迭代的過程,包括一個(gè)階段內(nèi)部的迭代和跨階段的迭代;模型具有增量開發(fā)特性,即能做到分析一點(diǎn)、設(shè)計(jì)一點(diǎn)、實(shí)現(xiàn)一點(diǎn),測試一點(diǎn),使相關(guān)功能隨之加入到演化的系統(tǒng)中。模型是對(duì)象驅(qū)動(dòng)的,對(duì)象是各階段活動(dòng)的主體,也是項(xiàng)目管理的基本內(nèi)容。該模型很自然地支持軟部件的重用。噴泉模型的特點(diǎn)軟件系統(tǒng)可維護(hù)性較好;軟件工程方法軟件工程方法是完成軟件工程項(xiàng)目的技術(shù)手段。它支持軟件開發(fā)與維護(hù)的全部過程。軟件工程方法劃分為:面向功能的方法結(jié)構(gòu)化分析方法Jackson方法Warnier方法面向?qū)ο蠓椒║ML軟件工程方法是軟件開發(fā)的結(jié)構(gòu)化方法軟件工程過程是方法的使用活動(dòng)軟件工程方法軟件工程方法是完成軟件工程項(xiàng)目的技術(shù)手段。它支持結(jié)構(gòu)化分析方法一種面向數(shù)據(jù)流的開發(fā)方法。圖形表示方法為數(shù)據(jù)流圖(DFD)和模塊層次結(jié)構(gòu)圖(SC)。現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐步求精,分解成若干個(gè)具有合適大小和功能的模塊并對(duì)各個(gè)模塊進(jìn)行定義和描述,其實(shí)質(zhì)就是功能分解和抽象。結(jié)構(gòu)化分析方法一種面向數(shù)據(jù)流的開發(fā)方法。圖形表示方法為數(shù)據(jù)流結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法SP法(StructuredProgram)70年代中結(jié)構(gòu)化設(shè)計(jì)方法SD法(StructuredDesign)70年代末結(jié)構(gòu)化分析方法SA法(StructuredAnalysis)SA,SD,SP法相互銜接,形成了一整套開發(fā)方法。若將SA,SD法結(jié)合起來,又稱為結(jié)構(gòu)化分析與設(shè)計(jì)技術(shù),即SDAT技術(shù)。結(jié)構(gòu)化方法的發(fā)展70年代初結(jié)構(gòu)化程序設(shè)計(jì)方法SP法(StJackson方法Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,它首先分析數(shù)據(jù)的層次結(jié)構(gòu),生成輸入、輸出數(shù)據(jù)結(jié)構(gòu)圖,把處理模塊化,并在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計(jì)和編程。Jackson方法有JSP(JacksonStructureProgramming)和改進(jìn)的JSD(JacksonSystemdevelopment)方法。Jackson方法Jackson方法是最典型的面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法的發(fā)展二十世紀(jì)七十年代Jackson提出了軟件工程領(lǐng)域中著名的Jackson方法,當(dāng)時(shí)它只用于軟件設(shè)計(jì)。二十世紀(jì)八十年代初,Jackson又對(duì)它進(jìn)行了多方面的擴(kuò)充和完善,最終發(fā)展成為一種需求分析方法。Jackson方法的核心思想是: 根據(jù)作用于數(shù)據(jù)的行為序列的結(jié)構(gòu)(順序、選擇與重復(fù)),建立目標(biāo)軟件系統(tǒng)的模型,然后在軟件設(shè)計(jì)階段將模型演化為相應(yīng)的程序結(jié)構(gòu)。Jackson方法的發(fā)展二十世紀(jì)七十年代Jackson提出了Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏輯結(jié)構(gòu)。找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元。從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖。列出所有的操作和條件,并把他們分配到程序結(jié)構(gòu)圖中去。Jackson方法的主要步驟分析并確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的邏Jackson圖的基本類型順序結(jié)構(gòu)重復(fù)結(jié)構(gòu)選擇結(jié)構(gòu)*表示重復(fù)O表示選擇一個(gè)分支AB*ABCDABCDOOOJackson圖的基本類型順序結(jié)構(gòu)重復(fù)結(jié)構(gòu)選擇結(jié)構(gòu)*表示重復(fù)Jackson的偽代碼1)順序結(jié)構(gòu) 順序結(jié)構(gòu)的偽碼如下,其中‘seq’和‘end’是關(guān)鍵字:

Aseq

B

C

D

AendJackson的偽代碼1)順序結(jié)構(gòu)Jackson的偽代碼2)選擇結(jié)構(gòu)‘select’、‘or’,和‘end’是關(guān)鍵字,cond1、cond2和cond3分別是執(zhí)行B、C或D的條件:選擇結(jié)構(gòu)對(duì)應(yīng)的偽碼如下:

Aselectcond1

B

Aorcond2

C

Aorcond3

D

AendJackson的偽代碼2)選擇結(jié)構(gòu)Jackson的偽代碼3)重復(fù)結(jié)構(gòu)‘iter’、‘until’、‘while’和‘end’是關(guān)鍵字(重復(fù)結(jié)構(gòu)有until和while兩種形式),cond是條件,重復(fù)結(jié)構(gòu)對(duì)應(yīng)的偽碼圖象:

Aiteruntil(或whi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論