軟件工程課件:第1章 緒論_第1頁(yè)
軟件工程課件:第1章 緒論_第2頁(yè)
軟件工程課件:第1章 緒論_第3頁(yè)
軟件工程課件:第1章 緒論_第4頁(yè)
軟件工程課件:第1章 緒論_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 概論軟件工程提綱軟件發(fā)展軟件工程軟件生命周期軟件開(kāi)發(fā)策略軟件過(guò)程模型CASE工具與環(huán)境1.1 軟件發(fā)展硬軟合一計(jì)算機(jī)通過(guò)運(yùn)行程序來(lái)實(shí)現(xiàn)各種不同的應(yīng)用。不是唯一軟件離不開(kāi)程序,但程序并不是軟件的全部。權(quán)威定義R.S.Pressman:“軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需的數(shù)據(jù),加上描述程序的操作和使用的文檔”。軟件程序+數(shù)據(jù)+文檔數(shù)據(jù)使程序正常運(yùn)行所需要的輸入信息。文檔程序軟件軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需的數(shù)據(jù),加上描述程序的操作和使用的文檔。各種報(bào)告、說(shuō)明、手冊(cè)的總稱(chēng)。是軟件開(kāi)發(fā)的記錄,主要供人們閱讀,既可以用于

2、專(zhuān)業(yè)人員和用戶(hù)之間的通信與交流,也可以用于軟件開(kāi)發(fā)過(guò)程的管理和運(yùn)行階段的維護(hù)。為了解決某個(gè)特定問(wèn)題而用程序設(shè)計(jì)語(yǔ)言編寫(xiě)的適合計(jì)算機(jī)處理的語(yǔ)句序列。1.1 軟件發(fā)展階段1階段2階段3軟件危機(jī)軟件危機(jī)的典型表現(xiàn)軟件危機(jī)的主要原因軟件工程存儲(chǔ)容量比較小衡量程序質(zhì)量的標(biāo)準(zhǔn)主要是功效采用個(gè)體工作方式占用內(nèi)存小用低級(jí)語(yǔ)言編寫(xiě)程序研究?jī)?nèi)容是科學(xué)計(jì)算程序、服務(wù)性程序和程序庫(kù)運(yùn)算速度比較慢運(yùn)行時(shí)間省以數(shù)值數(shù)據(jù)處理為主研究對(duì)象是順序程序輸入、輸出量較小幾乎沒(méi)有其他文檔從第一臺(tái)計(jì)算機(jī)上的第一個(gè)程序出現(xiàn)到實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn)之前第一階段 1946-19561.1 軟件發(fā)展存儲(chǔ)容量比較大高速主機(jī)與低速外圍設(shè)備的矛

3、盾突出出現(xiàn)了高級(jí)程序設(shè)計(jì)語(yǔ)言提出了軟件一詞,開(kāi)始認(rèn)識(shí)到文檔的重要性應(yīng)用領(lǐng)域包括數(shù)據(jù)處理(非數(shù)值數(shù)據(jù))研究高級(jí)程序設(shè)計(jì)語(yǔ)言、編譯程序、操作系統(tǒng)、支持編程的工具及各種應(yīng)用軟件外圍設(shè)備得到迅速發(fā)展出現(xiàn)了操作系統(tǒng)、并發(fā)程序、數(shù)據(jù)庫(kù)及其管理系統(tǒng)計(jì)算量不大工作方式逐步從個(gè)體方式轉(zhuǎn)向合作方式輸入、輸出量卻較大出現(xiàn)軟件危機(jī)第二階段 1956-19681.1 軟件發(fā)展從實(shí)用的高級(jí)程序設(shè)計(jì)語(yǔ)言出現(xiàn)以后到軟件工程出現(xiàn)以前美國(guó)用于控制火星探測(cè)器計(jì)算機(jī)軟件IBM360系列機(jī)的操作系統(tǒng)項(xiàng)目負(fù)責(zé)人在項(xiàng)目結(jié)束后的總結(jié)“,”號(hào)被誤寫(xiě)為“”最終致使飛往火星的探測(cè)器發(fā)生爆炸造成高達(dá)數(shù)億美元的損失5000人年的工作量寫(xiě)出近100萬(wàn)行

4、的源程序投入了這么多的人力和物力,得到的結(jié)果卻極其糟糕正像一只逃亡的野獸落到泥潭中做垂死掙扎,越是掙扎,陷得越深,最后無(wú)法逃脫滅頂?shù)臑?zāi)難程序設(shè)計(jì)工作正像這樣一個(gè)泥潭一批批程序員被迫在泥潭中掙扎誰(shuí)也沒(méi)有料到問(wèn)題竟會(huì)陷入這樣的困境這個(gè)操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個(gè)程序錯(cuò)誤而修正的結(jié)果1.1 軟件發(fā)展1.1 軟件發(fā)展軟件危機(jī)包含下述兩方面的問(wèn)題:軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。如何開(kāi)發(fā)軟件,以滿(mǎn)足對(duì)軟件日益增長(zhǎng)的需求如何維護(hù)數(shù)量不斷膨脹的已有軟件(1)軟件危機(jī)的典型表現(xiàn)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不正確軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料軟件產(chǎn)品的

5、質(zhì)量往往靠不住軟件開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)軟件常常是不可維護(hù)的用戶(hù)對(duì)“已完成的”軟件系統(tǒng)不滿(mǎn)意的現(xiàn)象經(jīng)常發(fā)生軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升(2)軟件危機(jī)的主要原因軟件開(kāi)發(fā)與維護(hù)的方法與認(rèn)識(shí)軟件自身的特點(diǎn)軟件本身的特點(diǎn):軟件是邏輯的,而不是物理的產(chǎn)品;軟件是由開(kāi)發(fā)或工程化而形成的,沒(méi)有明顯的制造過(guò)程;軟件在運(yùn)行和使用期間,不存在硬件那樣的磨損和老化問(wèn)題,但它存在退化問(wèn)題,開(kāi)發(fā)人員必須維護(hù)軟件;大多數(shù)軟件是自定的,而不是通過(guò)已有構(gòu)件組裝而成的;軟件成本相當(dāng)昂貴;軟件本身是復(fù)雜的;相當(dāng)多的軟件工作涉及到社會(huì)因素。(2)軟件危機(jī)的主要原因(2)軟件危機(jī)

6、的主要原因忽視軟件需求分析的重要認(rèn)為軟件開(kāi)發(fā)就是寫(xiě)程序輕視軟件維護(hù) 軟件開(kāi)發(fā)與維護(hù)的方法與認(rèn)識(shí)42“個(gè)體勞動(dòng)的神秘技巧” - 工程項(xiàng)目?!败浖褪浅绦颉?- 完整的配置。(3)消除軟件危機(jī)的途徑3消除錯(cuò)誤的概念和做法推廣使用實(shí)踐中總結(jié)出來(lái)的成功技術(shù)和方法開(kāi)發(fā)和使用更好的軟件工具有必要的組織管理措施硬件向巨型機(jī)和微型機(jī)兩方面發(fā)展網(wǎng)絡(luò)軟件、分布式應(yīng)用和軟件得到發(fā)展提出了軟件工程出現(xiàn)了“計(jì)算機(jī)輔助軟件工程”用工程化方法管理和開(kāi)發(fā)軟件研究軟件開(kāi)發(fā)模型、軟件開(kāi)發(fā)方法和技術(shù)、軟件工具與環(huán)境、軟件過(guò)程、軟件自動(dòng)化系統(tǒng)等計(jì)算機(jī)網(wǎng)絡(luò)飛速發(fā)展個(gè)體合作方式轉(zhuǎn)向工程方式應(yīng)用領(lǐng)域滲透到各個(gè)業(yè)務(wù)行業(yè)研究智能化、自動(dòng)化、集

7、成化、并行化為標(biāo)志的軟件開(kāi)發(fā)技術(shù)出現(xiàn)了嵌入式應(yīng)用側(cè)重構(gòu)件、軟件體系結(jié)構(gòu)、元計(jì)算研發(fā)第三階段 1968年以來(lái)1.1 軟件發(fā)展從軟件工程出現(xiàn)至今提綱軟件發(fā)展軟件工程軟件生命周期軟件開(kāi)發(fā)策略軟件過(guò)程模型CASE工具與環(huán)境定義基本原理軟件工程方法學(xué)1.2 軟件工程 軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程。計(jì)算機(jī)科學(xué)技術(shù)百科全書(shū) 把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開(kāi)發(fā)、運(yùn)行和維護(hù)過(guò)程,也就是把工程應(yīng)用于軟件;研究中提到的途徑。IEEE 軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。1968年NATO(北大西

8、洋公約組織)1.2.1 軟件工程的定義軟件工程的目標(biāo)預(yù)算合理費(fèi)用較低功能達(dá)標(biāo)性能良好提高維護(hù)性降低維護(hù)費(fèi)用提高生產(chǎn)率及時(shí)交付結(jié)果應(yīng)能清楚地審查5開(kāi)發(fā)小組的人員應(yīng)該少而精6承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性7用分階段的生命周期計(jì)劃嚴(yán)格管理1相互獨(dú)立,缺一不可1.2.2 軟件工程的基本原理B.W.Boehm于1983年在一篇論文中提出了軟件工程的7條基本原理。他認(rèn)為這7條原理是確保軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的原理的最小集合。堅(jiān)持進(jìn)行階段評(píng)審2實(shí)行嚴(yán)格的產(chǎn)品控制3采用現(xiàn)代程序設(shè)設(shè)計(jì)技術(shù)41.2.3 軟件工程方法學(xué)軟件工程是一種層次化的技術(shù),其中過(guò)程、方法和工具是軟件工程的三個(gè)要素。(1) 軟件工程必須以有

9、組織的質(zhì)量保證為基礎(chǔ),全面質(zhì)量管理和過(guò)程改進(jìn)使得更加成熟的軟件工程方法的不斷出現(xiàn)。(2) 軟件工程過(guò)程是進(jìn)行一系列有組織的活動(dòng),從而能夠合理地和及時(shí)地開(kāi)發(fā)出計(jì)算機(jī)軟件。過(guò)程定義了技術(shù)方法的采用、工程產(chǎn)品(包括模型、文檔、數(shù)據(jù)、報(bào)告、表格等)的產(chǎn)生、里程碑的建立、質(zhì)量的保證和變更的管理。(3) 軟件工程方法為軟件開(kāi)發(fā)提供如何做的技術(shù),它涵蓋了項(xiàng)目計(jì)劃、需求分析、系統(tǒng)設(shè)計(jì)、程序?qū)崿F(xiàn)、測(cè)試與維護(hù)等一系列的任務(wù)。(4)軟件工具為過(guò)程和方法提供自動(dòng)的或半自動(dòng)的支持。這些軟件工具被集成起來(lái),建立起一個(gè)支持軟件開(kāi)發(fā)的系統(tǒng),稱(chēng)之為計(jì)算機(jī)輔助軟件工程(CASE,Computer Aided Software E

10、ngineering)。CASE集成了軟件、硬件和一個(gè)存放開(kāi)發(fā)過(guò)程信息的軟件工程數(shù)據(jù)庫(kù),形成了一個(gè)軟件工程環(huán)境。1.2.3 軟件工程方法學(xué)軟件工程層次的擴(kuò)展程序=算法+結(jié)構(gòu)方法(面向過(guò)程/OOP/MDA)過(guò)程(RUP/XP)工程(需求管理)(配置管理)(文檔化)組織(管理、計(jì)劃)1.2.3 軟件工程方法學(xué)提綱軟件發(fā)展軟件開(kāi)發(fā)策略軟件過(guò)程模型CASE工具與環(huán)境軟件生命周期1. 3 軟件生命周期軟件維護(hù)改正錯(cuò)誤適應(yīng)新環(huán)境滿(mǎn)足新需求軟件開(kāi)發(fā)總體設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試軟件定義問(wèn)題定義可行性研究需求分析1. 3 軟件生命周期需求分析3可行性分析2問(wèn)題定義1詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6

11、綜合測(cè)試7軟件維護(hù)8包括問(wèn)題性質(zhì)、工程目標(biāo)、工程規(guī)模,并經(jīng)客戶(hù)認(rèn)可的書(shū)面報(bào)告關(guān)鍵問(wèn)題:“要解決的問(wèn)題是什么?”問(wèn)題定義1不是解決具體問(wèn)題,而是研究問(wèn)題的范圍,價(jià)值與可行性是客戶(hù)是否繼續(xù)進(jìn)行這項(xiàng)工程的決定的重要依據(jù)關(guān)鍵問(wèn)題:對(duì)上一階段所確定的問(wèn)題有行得通的解決辦法嗎?需求分析3可行性研究2問(wèn)題定義1詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8可行性研究21. 3 軟件生命周期1. 3 軟件生命周期用戶(hù)和軟件開(kāi)發(fā)人員之間的斷層關(guān)鍵問(wèn)題:為了解決這個(gè)問(wèn)題,系統(tǒng)必須做什么通過(guò)雙方密切配合,形成系統(tǒng)邏輯模型,撰寫(xiě)規(guī)格說(shuō)明書(shū)需求分析3需求分析2問(wèn)題定義1詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6綜合

12、測(cè)試7軟件維護(hù)8需求分析31. 3 軟件生命周期推薦幾種可能的實(shí)現(xiàn)方案,并推薦一種最佳方案關(guān)鍵問(wèn)題:概況的說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?總體設(shè)計(jì)3可行性分析2問(wèn)題定義1詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8總體設(shè)計(jì)4設(shè)計(jì)程序的體系結(jié)構(gòu),確定模塊及其相關(guān)聯(lián)系1. 3 軟件生命周期制定詳細(xì)規(guī)格,使得程序員可以據(jù)此進(jìn)行編碼關(guān)鍵問(wèn)題:應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)?需求分析3可行性研究2問(wèn)題定義1詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8詳細(xì)設(shè)計(jì)5設(shè)計(jì)每個(gè)模塊,確定需要的算法和數(shù)據(jù)結(jié)構(gòu)1. 3 軟件生命周期依據(jù)詳細(xì)設(shè)計(jì)進(jìn)行編碼,并仔細(xì)測(cè)試每個(gè)模塊關(guān)鍵任務(wù):寫(xiě)出正確、容易理解、容

13、易維護(hù)的程序模塊詳細(xì)設(shè)計(jì)5總體設(shè)計(jì)4編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8編碼和單元測(cè)試61. 3 軟件生命周期集成測(cè)試、驗(yàn)收測(cè)試等關(guān)鍵任務(wù):通過(guò)各種類(lèi)型的測(cè)試使軟件得到需求詳細(xì)設(shè)計(jì)5編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8綜合測(cè)試71. 3 軟件生命周期編碼和單元測(cè)試6綜合測(cè)試7軟件維護(hù)8四類(lèi)維護(hù):改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)關(guān)鍵任務(wù):通過(guò)各種必要的維護(hù)活動(dòng)使得系統(tǒng)持續(xù)地滿(mǎn)足用戶(hù)需要軟件維護(hù)8提綱軟件發(fā)展軟件開(kāi)發(fā)策略軟件過(guò)程模型CASE工具與環(huán)境1.確保質(zhì)量;2.提高效率。具有一定集成度并可以重復(fù)使用的軟件組成單元稱(chēng)為軟構(gòu)件(Software Component),軟件復(fù)用就是直

14、接使用已有的軟構(gòu)件,即可組裝(或加以合理修改)成新的系統(tǒng),而可以不必每次從零做起。1. 4 軟件開(kāi)發(fā)策略(1)軟件復(fù)用1.降低復(fù)雜度;2.提高效率。分而治之是指把大而復(fù)雜的問(wèn)題分解成若干個(gè)簡(jiǎn)單的小問(wèn)題,然后逐個(gè)解決。1. 4 軟件開(kāi)發(fā)策略(2)分而治之軟件的折衷策略是指通過(guò)協(xié)調(diào)各個(gè)質(zhì)量因素,實(shí)現(xiàn)整體質(zhì)量的最優(yōu)。軟件折衷的重要原則是不能使某一方損失關(guān)鍵的職能,更不可以象舍魚(yú)而取熊掌那樣拋棄一方。軟件的優(yōu)化是指優(yōu)化軟件的各個(gè)質(zhì)量因素。提高運(yùn)行速度提高對(duì)內(nèi)存資源的利用率使用戶(hù)界面更加友好使三維圖形的真實(shí)感更強(qiáng)。1. 4 軟件開(kāi)發(fā)策略(3)折中-優(yōu)化提綱軟件發(fā)展軟件過(guò)程模型CASE工具與環(huán)境1. 5

15、軟件過(guò)程模型軟件過(guò)程軟件過(guò)程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過(guò)程描述為了開(kāi)發(fā)客戶(hù)需要的軟件,什么人(who)、在什么時(shí)候(when)、做什么事(what)以及怎樣(how)做這些事以實(shí)現(xiàn)某一個(gè)特定的具體目標(biāo)。軟件過(guò)程模型軟件過(guò)程模型是軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件過(guò)程模型的選擇基于項(xiàng)目和應(yīng)用的性質(zhì)、采用的方法工具以及需要的控制和交付的產(chǎn)品。瀑布模型螺旋模型噴泉模型快速原型模型增量模型RUP敏捷過(guò)程與極限編程1. 5 軟件過(guò)程模型常見(jiàn)模型1.5.1瀑布模型階段間具有順序性和依賴(lài)性推遲實(shí)現(xiàn)質(zhì)量保證;每個(gè)階段都必須完成規(guī)定的文檔每個(gè)

16、階段結(jié)束前都需要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤1.5.1瀑布模型優(yōu)點(diǎn):可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)段必須提交的文檔;要求每個(gè)階段交出的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證。不足:過(guò)度依賴(lài)于書(shū)面規(guī)格說(shuō)明,軟件未必真正滿(mǎn)足用戶(hù)需要;缺乏靈活性,難以適應(yīng)需求不明確或需求經(jīng)常變化的軟件開(kāi)發(fā);開(kāi)發(fā)早期存在的問(wèn)題往往要到交付使用時(shí)才發(fā)現(xiàn),維護(hù)代價(jià)大。適合于用戶(hù)需求明確、完整、無(wú)重大變的軟件項(xiàng)目開(kāi)發(fā)1.5.2快速原型模型快速原型(1)定義軟件的總體目標(biāo),標(biāo)識(shí)需求;(2)快速制訂原型開(kāi)發(fā)的計(jì)劃,構(gòu)建原型;(3)用戶(hù)試用,提出修改意見(jiàn);(4)(5)依據(jù)滿(mǎn)意的原型撰寫(xiě)規(guī)格

17、說(shuō)明文檔??焖俳⑵饋?lái)的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集1.5.2快速原型模型不帶反饋環(huán)線性進(jìn)行加速軟件開(kāi)發(fā)過(guò)程節(jié)約軟件開(kāi)發(fā)成本原型的用途是獲知用戶(hù)的真正需求原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要利用軟件工具生成的可用到最終軟件產(chǎn)品中原型類(lèi)型探索型演化型廢棄策略實(shí)驗(yàn)型追加策略使用策略1.5.2快速原型模型 探索型 演化型 追加策略 廢棄策略 實(shí)驗(yàn)型目的是要弄清目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性目的是驗(yàn)證方案或算法的合理性,它是在大規(guī)模開(kāi)發(fā)和實(shí)現(xiàn)前,用于考核方案是否合適,規(guī)格說(shuō)明是否可靠目的是將原型作為目標(biāo)系統(tǒng)的一部分,通過(guò)對(duì)原型的多次改進(jìn)

18、,逐步將原型演化成最終的目標(biāo)系統(tǒng)這些原型關(guān)注于目標(biāo)系統(tǒng)的某些特性,而不是全部特性,開(kāi)發(fā)這些原型時(shí)通常不考慮與探索或?qū)嶒?yàn)?zāi)康臒o(wú)關(guān)的功能、質(zhì)量、結(jié)構(gòu)等因素,這種原型通常被廢丟,然后根據(jù)探索或?qū)嶒?yàn)的結(jié)果用良好的結(jié)構(gòu)和設(shè)計(jì)思想重新設(shè)計(jì)目標(biāo)系統(tǒng)。實(shí)現(xiàn)了目標(biāo)系統(tǒng)中已明確定義的特性的一個(gè)子集,通過(guò)對(duì)它的不斷修改和擴(kuò)充,逐步追加新的要求,最后使其演化成最終的目標(biāo)系統(tǒng)。適用情況:用戶(hù)定義了一組一般性目標(biāo),但不能標(biāo)識(shí)出詳細(xì)的輸入、處理及輸出需求;開(kāi)發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式等。1.5.3增量模型增量原型:也稱(chēng)為漸增模型。使用增量模型開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)

19、計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。分解時(shí)惟一必須遵守的約束條件是,當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時(shí),所形成的產(chǎn)品必須是可測(cè)試的。1.5.3增量模型實(shí)現(xiàn)中的困難分批交付構(gòu)件,每個(gè)構(gòu)件均可用體系結(jié)構(gòu)必須是開(kāi)放的開(kāi)發(fā)人員可逐步開(kāi)發(fā)整體-構(gòu)件之間的矛盾減少用戶(hù)對(duì)全新產(chǎn)品的沖擊多構(gòu)件并發(fā)的風(fēng)險(xiǎn)便于進(jìn)一步的維護(hù)優(yōu)點(diǎn)1優(yōu)點(diǎn)2優(yōu)點(diǎn)3優(yōu)點(diǎn)41.5.3增量模型增量模型特別適用于:需求經(jīng)常變化的軟件開(kāi)發(fā)市場(chǎng)急需而開(kāi)發(fā)人員和資金不能在設(shè)定的市場(chǎng)期限之前實(shí)現(xiàn)一個(gè)完善的產(chǎn)品的軟件開(kāi)發(fā)1.5.4螺旋模型軟件風(fēng)險(xiǎn)是任何軟件開(kāi)發(fā)項(xiàng)目中都普遍存在的實(shí)際問(wèn)題,項(xiàng)目越大,軟件越復(fù)雜,承擔(dān)該項(xiàng)

20、目所冒的風(fēng)險(xiǎn)也越大。螺旋模型的基本思想是降低風(fēng)險(xiǎn)。構(gòu)建原型是一種使某些風(fēng)險(xiǎn)降至最低的方法??梢詫⒙菪P涂醋鲈诿總€(gè)階段前都增加了風(fēng)險(xiǎn)分析過(guò)程的快速原型模型。完整的螺旋模型1.5.4螺旋模型點(diǎn)畫(huà)線的長(zhǎng)度: 累積開(kāi)發(fā)費(fèi)用螺旋線的角度: 開(kāi)發(fā)進(jìn)度螺旋線每個(gè)周期: 一個(gè)開(kāi)發(fā)階段1.5.4螺旋模型優(yōu)點(diǎn)特點(diǎn)有利于軟件重用和質(zhì)量監(jiān)控減少了過(guò)多測(cè)試和不足的風(fēng)險(xiǎn)維護(hù)和開(kāi)發(fā)直接沒(méi)有本質(zhì)區(qū)別風(fēng)險(xiǎn)驅(qū)動(dòng),需要豐富知識(shí)及經(jīng)驗(yàn)適用于內(nèi)部開(kāi)發(fā)的大規(guī)模項(xiàng)目工作量及成本隨迭代次數(shù)增加1.5.5噴泉模型噴泉模型是典型的面向?qū)ο蟮能浖^(guò)程模型之一“噴泉”代指面向?qū)ο箝_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性工作重點(diǎn)放在生命周期的分析階段,在定義面向問(wèn)

21、題的對(duì)象后,不斷充實(shí)和擴(kuò)充這些對(duì)象。分析階段的對(duì)象模型也適用于設(shè)計(jì)和實(shí)現(xiàn)階段。1.5.5噴泉模型不同階段的圓圈相互重疊:活動(dòng)之間的交迭;概念和表示方法的一致性:開(kāi)發(fā)活動(dòng)之間的無(wú)縫過(guò)渡;向下的箭頭:階段內(nèi)的求精。為避免使用噴泉模型開(kāi)發(fā)軟件時(shí)開(kāi)發(fā)過(guò)程過(guò)分無(wú)序,應(yīng)該把一個(gè)線性過(guò)程(例如,快速原型模型或圖中的中心垂線)作為總目標(biāo)。面向?qū)ο蠓缎捅旧硪蠼?jīng)常對(duì)開(kāi)發(fā)活動(dòng)進(jìn)行迭代或求精。1.5.6 RUP來(lái)源是由Rational公司的Booch、Jacobson、 Rumbaugh提出的軟件過(guò)程模型,也稱(chēng)RUP(Rational Unified Process),或統(tǒng)一過(guò)程。使用統(tǒng)一建模語(yǔ)言,采用用例驅(qū)動(dòng)和架

22、構(gòu)有限的策略,使用迭代增量建造方法。思想價(jià)值總結(jié)了多年商業(yè)化驗(yàn)證的六條最有效的軟件開(kāi)發(fā)經(jīng)驗(yàn),這些經(jīng)驗(yàn)被稱(chēng)為“最佳實(shí)踐”。1.5.6 RUP基于構(gòu)件的體系結(jié)構(gòu)管理需求迭代式開(kāi)發(fā)可視化建模驗(yàn)證軟件質(zhì)量控制軟件變更允許需求有變化通過(guò)驗(yàn)證減少風(fēng)險(xiǎn)每階段有可執(zhí)行版本利用用例捕獲功能用例驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)現(xiàn)有的或新開(kāi)發(fā)的構(gòu)件定義體系結(jié)構(gòu)的系統(tǒng)化方法可視化建模UML語(yǔ)言不再是事后型或單獨(dú)小組進(jìn)行貫穿整個(gè)開(kāi)發(fā)過(guò)程、全員參與描述了如何控制、跟蹤和監(jiān)控修改,確保迭代開(kāi)發(fā)成功1.5.6 RUP在每個(gè)階段的每次迭代的最后,用例模型、分析模型、設(shè)計(jì)模型、實(shí)現(xiàn)模型都會(huì)增量,每個(gè)階段結(jié)束的里程碑處,管理層做出是否繼續(xù)、進(jìn)度、預(yù)

23、算、是否給下一階段提供資助等決定。不同階段工作流的側(cè)重點(diǎn)不同,前兩階段大部分工作集中在需求、分析和架構(gòu)設(shè)計(jì)上;在構(gòu)造階段,重點(diǎn)轉(zhuǎn)移到詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試上。1.5.6 RUP業(yè)務(wù)建模需求分析和設(shè)計(jì)實(shí)現(xiàn)測(cè)試部署配置與變更管理項(xiàng)目管理環(huán)境了解使用目標(biāo)系統(tǒng)的機(jī)構(gòu)及其商業(yè)運(yùn)作,評(píng)價(jià)其影響。獲取用戶(hù)需求,并且使開(kāi)發(fā)人員和用戶(hù)達(dá)成對(duì)需求共識(shí)。把需求分析的結(jié)果轉(zhuǎn)化成分析模型與設(shè)計(jì)模型。把設(shè)計(jì)模型轉(zhuǎn)化為實(shí)現(xiàn)結(jié)果。檢查各個(gè)子系統(tǒng)的交互和集成,驗(yàn)證需求,消除缺陷。生成目標(biāo)系統(tǒng)的可執(zhí)行版本,將軟件移交給最終用戶(hù)。跟蹤并維護(hù)在軟件開(kāi)發(fā)過(guò)程中產(chǎn)生的所有制品完整性和一致性。制定計(jì)劃、人員配置、執(zhí)行和監(jiān)督方面的實(shí)用準(zhǔn)則,風(fēng)

24、險(xiǎn)管理。向軟件開(kāi)發(fā)機(jī)構(gòu)提供軟件開(kāi)發(fā)環(huán)境,包括過(guò)程管理和工具支持。1.5.6 RUP初始階段細(xì)化階段構(gòu)造階段移交階段進(jìn)行問(wèn)題定義,確定目標(biāo),評(píng)估其可行性,降低關(guān)鍵風(fēng)險(xiǎn)。制定項(xiàng)目計(jì)劃、配置各類(lèi)資源、建立系統(tǒng)架構(gòu)(包括各類(lèi)視圖)。開(kāi)發(fā)整個(gè)產(chǎn)品,并確保產(chǎn)品可移交給用戶(hù)。產(chǎn)品發(fā)布、安裝、用戶(hù)培訓(xùn)。1.5.6 敏捷過(guò)程與極限編程是一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法。在敏捷開(kāi)發(fā)中,軟件項(xiàng)目的構(gòu)建被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過(guò)測(cè)試,具備集成和可運(yùn)行的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過(guò)程中軟件一直處于可使用狀態(tài)。敏捷開(kāi)發(fā)極限編程是敏捷過(guò)程

25、中最有名的一個(gè), 適于小型項(xiàng)目,極限編程(XP,eXtreme Programming)對(duì)于傳統(tǒng)的軟件工程中看來(lái)是“極端的”實(shí)踐。極限編程1.5.6 敏捷過(guò)程與極限編程17位著名的軟件專(zhuān)家于2001年2月聯(lián)合起草了敏捷軟件開(kāi)發(fā)宣言。個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件勝過(guò)面面俱到的文檔客戶(hù)合作勝過(guò)合同談判響應(yīng)變化勝過(guò)遵循計(jì)劃聲明是對(duì)不同因素在保證軟件開(kāi)發(fā)成功方面起作用大小的比較,不是降低或者忽略某個(gè)因素。1.5.6 敏捷過(guò)程與極限編程敏捷開(kāi)發(fā)的特點(diǎn):“適應(yīng)性”(Adaptive)而非“預(yù)設(shè)性” (Predictive)“面向人” (people oriented)而非“面向過(guò)程”(proce

26、ss oriented)敏捷開(kāi)發(fā)的目的是建立起一個(gè)項(xiàng)目團(tuán)隊(duì)全員參與到軟件開(kāi)發(fā)中,包括設(shè)定軟件開(kāi)發(fā)流程的管理人員,只有這樣軟件開(kāi)發(fā)流程才有可接受性。同時(shí)敏捷開(kāi)發(fā)要求研發(fā)人員獨(dú)立自主在技術(shù)上進(jìn)行決策,因?yàn)樗麄兪亲盍私馐裁醇夹g(shù)是需要和不需要的。再者,敏捷開(kāi)發(fā)特別重視項(xiàng)目團(tuán)隊(duì)中的信息交流1.5.6 敏捷過(guò)程與極限編程核心價(jià)值觀簡(jiǎn)單短交付周期使用客戶(hù)素材驗(yàn)收測(cè)試開(kāi)放的工作空間可持續(xù)的開(kāi)發(fā)速度溝通勇氣反饋謙遜有效實(shí)踐重構(gòu)最優(yōu)化實(shí)現(xiàn)用戶(hù)素材客戶(hù)作為開(kāi)發(fā)團(tuán)隊(duì)結(jié)對(duì)編程測(cè)試驅(qū)動(dòng)開(kāi)發(fā)持續(xù)集成集體所有及時(shí)調(diào)整計(jì)劃使用隱喻客戶(hù)素材是指正在進(jìn)行的關(guān)于需求的談話內(nèi)容的助記符。代碼重構(gòu)是指在不改變系前提下,重新調(diào)整和優(yōu)化系統(tǒng)

27、的內(nèi)部結(jié)構(gòu)。是整個(gè)系統(tǒng)在一起的全局視圖,描述系統(tǒng)如何運(yùn)作,新功能如何添加。1.5.6 敏捷過(guò)程與極限編程XP項(xiàng)目的整體開(kāi)發(fā)過(guò)程1.5.6 敏捷過(guò)程與極限編程XP迭代開(kāi)發(fā)過(guò)程敏捷過(guò)程能夠較好的適應(yīng)商業(yè)環(huán)境下對(duì)小型項(xiàng)目提出的有限資源和有限開(kāi)發(fā)時(shí)間的約束。1.5.7 微軟過(guò)程微軟過(guò)程準(zhǔn)則小型項(xiàng)目組并行完成開(kāi)發(fā)項(xiàng)目進(jìn)度表高穩(wěn)定和權(quán)威采用快速循環(huán)、遞進(jìn)的開(kāi)發(fā)過(guò)程創(chuàng)造性工作衡量產(chǎn)品特性和成本零缺陷作為追求目標(biāo)里程碑評(píng)審會(huì)目的是改進(jìn)工作項(xiàng)目早期軟件配置項(xiàng)基線化,后期凍結(jié)產(chǎn)品原型驗(yàn)證,對(duì)項(xiàng)目進(jìn)行早期論證1.5.7 微軟過(guò)程規(guī)劃階段:獲得用戶(hù)情況和客戶(hù)需求等,完成:產(chǎn)品目標(biāo);獲取競(jìng)爭(zhēng)對(duì)手信息;完成調(diào)研分析;確定

28、產(chǎn)品主要特征;定義問(wèn)題及功能。設(shè)計(jì)階段:70%以上的需求:特性規(guī)格說(shuō)明書(shū);系統(tǒng)設(shè)計(jì);子系統(tǒng)及規(guī)格說(shuō)明;制定產(chǎn)品開(kāi)發(fā)計(jì)劃開(kāi)發(fā)階段:完成所有構(gòu)件開(kāi)發(fā),包括編寫(xiě)程序代碼和書(shū)寫(xiě)文檔。發(fā)布階段:發(fā)布產(chǎn)品或解決方案,穩(wěn)定發(fā)布過(guò)程,將項(xiàng)目移交運(yùn)營(yíng)和支持人員,用戶(hù)認(rèn)可。穩(wěn)定階段:對(duì)產(chǎn)品進(jìn)行測(cè)試和調(diào)試,確保產(chǎn)品在真實(shí)環(huán)境下的使用和操作。1.5.7 微軟過(guò)程微軟過(guò)程的生命周期模型適用于商業(yè)環(huán)境的具有有限資源和有限開(kāi)發(fā)時(shí)間約束的項(xiàng)目的軟件過(guò)程模式。綜合了Rational統(tǒng)一過(guò)程和敏捷過(guò)程的許多優(yōu)點(diǎn),對(duì)眾多成功項(xiàng)目經(jīng)驗(yàn)的總結(jié)。在方法、工具和產(chǎn)品方面論述不夠全面。提綱軟件發(fā)展CASE工具與環(huán)境1.6 CASE工具與環(huán)境在軟件工程活動(dòng)中,軟件工程師和管理人員按照軟件工程的方法和原則,借助于計(jì)算機(jī)及其軟件工具的幫助,開(kāi)發(fā)、維護(hù)、管理軟件產(chǎn)品的過(guò)程稱(chēng)為計(jì)算機(jī)輔助軟件工程。計(jì)算機(jī)輔助軟件工程(CASE) Computer Aided Software Engineering軟件工具是用來(lái)輔助計(jì)算機(jī)軟件的開(kāi)發(fā)、運(yùn)行、維護(hù)、管理、支持過(guò)程中的活動(dòng)或任務(wù)的軟件。集成型開(kāi)發(fā)環(huán)境是一種把支持多種軟件開(kāi)發(fā)方法和過(guò)程模型的軟件工具集成到一起的軟件開(kāi)發(fā)環(huán)境。集成型開(kāi)發(fā)環(huán)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論