軟件工程1-2-史濟(jì)民_第1頁
軟件工程1-2-史濟(jì)民_第2頁
軟件工程1-2-史濟(jì)民_第3頁
軟件工程1-2-史濟(jì)民_第4頁
軟件工程1-2-史濟(jì)民_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、湘 潭 大 學(xué)軟件工程軟件工程教材:軟件工程原理、方法與應(yīng)用(第三版)著作者:史濟(jì)民 顧春華 鄭紅授課人:張陵山第第1 1章章 緒論緒論 某些新科技的發(fā)明創(chuàng)造會(huì)給其他一些看似無關(guān)的技術(shù)領(lǐng)域、商業(yè)企業(yè)、公眾甚至整個(gè)社會(huì)文化帶來深遠(yuǎn)而出人意料的影響和作用。這就是所謂的“意外效應(yīng)法則”。 計(jì)算機(jī)軟件已經(jīng)成為世界舞臺(tái)上最為重要的科技領(lǐng)域,并且是“意外效應(yīng)法則”的一個(gè)最好的體現(xiàn)。 現(xiàn)在的軟件技術(shù)具有產(chǎn)品和產(chǎn)品生產(chǎn)載體的雙重作用。 作為一個(gè)產(chǎn)品,軟件顯示了由計(jì)算機(jī)硬件體現(xiàn)的計(jì)算能力。 作為產(chǎn)品生產(chǎn)的載體,軟件提供了計(jì)算機(jī)控制(操作系統(tǒng))、信息通信(網(wǎng)絡(luò))以及應(yīng)用開發(fā)和控制(軟件工具和環(huán)境)的基礎(chǔ)平臺(tái)。 軟

2、件傳遞了我們這個(gè)時(shí)代最重要的產(chǎn)品信息。 現(xiàn)在,龐大的軟件產(chǎn)業(yè)已經(jīng)成為工業(yè)經(jīng)濟(jì)中的主導(dǎo)因素。早期的獨(dú)立程序員也已經(jīng)被多個(gè)專業(yè)的軟件開發(fā)團(tuán)隊(duì)所代替。 同過去的獨(dú)立程序員一樣,開發(fā)現(xiàn)代計(jì)算機(jī)系統(tǒng)時(shí),軟件開發(fā)人員依然面臨同樣的問題: 為什么軟件需要如此長的開發(fā)時(shí)間? 為什么開發(fā)成本居高不下? 為什么在將軟件交付顧客使用時(shí),我們無法找到所有的錯(cuò)誤? 為什么維護(hù)已有的程序要花費(fèi)高昂的時(shí)間和人力代價(jià)? 為什么軟件開發(fā)和維護(hù)的過程難以度量?1.1 1.1 軟件和軟件危機(jī)軟件和軟件危機(jī)軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序,包括使程序正常執(zhí)行所需的數(shù)據(jù),以及有關(guān)描述程序操作和使用的文檔(R. S. P

3、ressman)軟件=程序(包括數(shù)據(jù))+文檔程序是為了解決某個(gè)特定問題而用程序設(shè)計(jì)語言描述的適合計(jì)算機(jī)處理的語句序列。數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料。軟件開發(fā)不同于硬件設(shè)計(jì);軟件生產(chǎn)與硬件制造不同;軟件維護(hù)不同于硬件維修。軟件開發(fā)與人關(guān)系密切;軟件開發(fā)成本大;軟件生產(chǎn)是簡單的拷貝;軟件不會(huì)磨損和老化;軟件受環(huán)境影響大;軟件維護(hù)易產(chǎn)生新的問題。 軟件危機(jī)的表現(xiàn)軟件危機(jī)的表現(xiàn)對(duì)軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確;對(duì)軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確;用戶很不滿意;用戶很不滿意;質(zhì)量很不可靠;質(zhì)量很不可靠;沒有適當(dāng)?shù)奈臋n;沒有適當(dāng)?shù)奈臋n;軟件成本比重上升

4、;軟件成本比重上升;供不應(yīng)求:軟件開發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)供不應(yīng)求:軟件開發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì)用迅速深入的趨勢(shì) 。 硬件/軟件成本變化趨勢(shì)硬件軟件100% 0%195519701985 軟件技術(shù)進(jìn)步落后于需求增長軟件危機(jī)的原因軟件危機(jī)的原因客觀:軟件本身特點(diǎn)客觀:軟件本身特點(diǎn)-邏輯部件-規(guī)模龐大、復(fù)雜度高主觀:不正確的開發(fā)方法主觀:不正確的開發(fā)方法-忽視需求分析-個(gè)人化方式:軟件開發(fā)=程序編寫-輕視軟件維護(hù)解決途徑解決途徑組織管理組織管理-工程項(xiàng)目管理方法技術(shù)措施技術(shù)措施-軟件開發(fā)技術(shù)與方法-軟件工具 促使了軟件工程的誕生促使了軟件工程的誕生 按是解決軟件開發(fā)中的問題一個(gè)主要

5、出路。 軟件工程學(xué)的研究范疇軟件工程學(xué)的研究范疇 “軟件工程軟件工程”一詞是在一詞是在19681968年北大西洋公約組織在聯(lián)年北大西洋公約組織在聯(lián)邦德國召開的一次會(huì)議上提出。有多種定義,中心思邦德國召開的一次會(huì)議上提出。有多種定義,中心思想是把軟件當(dāng)做一件工業(yè)產(chǎn)品。想是把軟件當(dāng)做一件工業(yè)產(chǎn)品。軟軟件件開發(fā)開發(fā)技技術(shù)術(shù)軟軟件工程管理件工程管理軟軟件工程件工程學(xué)學(xué)軟軟件方法件方法軟軟件工具件工具軟軟件工程件工程環(huán)環(huán)境境軟軟件管理件管理學(xué)學(xué)軟軟件件經(jīng)濟(jì)學(xué)經(jīng)濟(jì)學(xué)軟軟件度量件度量學(xué)學(xué)軟件工程學(xué)的研究范疇軟件工程學(xué)的研究范疇 軟件開發(fā)方法軟件開發(fā)方法 為軟件開發(fā)提供了為軟件開發(fā)提供了 “ “如何做如何做”

6、 ” 的技術(shù)的技術(shù) 個(gè)性化方法個(gè)性化方法- -結(jié)構(gòu)化方法結(jié)構(gòu)化方法- -面向?qū)ο蠓椒嫦驅(qū)ο蠓椒? -軟件復(fù)用軟件復(fù)用 軟件工具軟件工具 為軟件開發(fā)提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境為軟件開發(fā)提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境 單個(gè)工具單個(gè)工具- -工具箱、集成工具工具箱、集成工具- -環(huán)境環(huán)境 軟件工程管理軟件工程管理 目的:為了按進(jìn)度及預(yù)算完成軟件計(jì)劃目的:為了按進(jìn)度及預(yù)算完成軟件計(jì)劃 內(nèi)容:成本估算、進(jìn)度安排、人員組織、質(zhì)量保證等內(nèi)容:成本估算、進(jìn)度安排、人員組織、質(zhì)量保證等r三種編程范型三種編程范型r過程式編程范型過程式編程范型r程序由一組被動(dòng)數(shù)據(jù)和一組能動(dòng)過程組成r程序=數(shù)據(jù)結(jié)構(gòu)+算

7、法r著眼于程序的過程和基本控制結(jié)構(gòu),粒度最小r面向?qū)ο缶幊谭缎兔嫦驅(qū)ο缶幊谭缎蛂數(shù)據(jù)及其操作被封裝在對(duì)象中r程序=對(duì)象+消息r著眼于程序中的對(duì)象,粒度比較大r基于構(gòu)件技術(shù)的編程范型基于構(gòu)件技術(shù)的編程范型r構(gòu)件是通用的、可復(fù)用的標(biāo)準(zhǔn)化對(duì)象類r程序=構(gòu)件+架構(gòu)r著眼于適合整個(gè)領(lǐng)域的類對(duì)象,粒度更大 過程式和面向?qū)ο蟮木幊谭缎痛婵钊】罾⒔Y(jié)算帳戶余額帳戶余額利息結(jié)算存 款取 款銀行儲(chǔ)蓄處理業(yè)務(wù) 傳統(tǒng)軟件工程 開發(fā)過程經(jīng)歷的階段:結(jié)構(gòu)化分析 結(jié)構(gòu)化設(shè)計(jì) 面向過程的編碼 軟件測試 面向?qū)ο筌浖こ?開發(fā)過程經(jīng)歷的階段: OO分析與對(duì)象抽取 對(duì)象詳細(xì)設(shè)計(jì) 面向?qū)ο蟮木幋a和測試 基于構(gòu)件的軟件工程 開發(fā)過程

8、經(jīng)歷的階段:領(lǐng)域分析和測試計(jì)劃定制 領(lǐng)域設(shè)計(jì) 建立可復(fù)用構(gòu)件庫 查找并集成構(gòu)件 1.4 1.4 軟件工程的應(yīng)用軟件工程的應(yīng)用 軟件工程指導(dǎo)中小型軟件 軟件工程指導(dǎo)大型軟件 軟件工程的成就 解決軟件開發(fā)中的部分問題(非本質(zhì)) 軟件生產(chǎn)率穩(wěn)步增長 軟件工程發(fā)展的展望 開發(fā)伴隨軟件復(fù)用,開發(fā)為了軟件復(fù)用 軟件就是服務(wù)小結(jié)小結(jié) 軟件工程自軟件工程自19681968年提出以來,在過去年提出以來,在過去3030余年中,已發(fā)余年中,已發(fā)展成為用于指導(dǎo)軟件生產(chǎn)工程化,覆蓋軟件開發(fā)方法展成為用于指導(dǎo)軟件生產(chǎn)工程化,覆蓋軟件開發(fā)方法學(xué)、軟件工程管理、軟件工具與環(huán)境等內(nèi)容的一門新學(xué)、軟件工程管理、軟件工具與環(huán)境等內(nèi)

9、容的一門新學(xué)科。學(xué)科。 隨著程序設(shè)計(jì)從結(jié)構(gòu)化程序設(shè)計(jì)發(fā)展到面向?qū)ο蟪绦螂S著程序設(shè)計(jì)從結(jié)構(gòu)化程序設(shè)計(jì)發(fā)展到面向?qū)ο蟪绦蛟O(shè)計(jì),軟件工程也由傳統(tǒng)的軟件工程演變?yōu)槊嫦蛟O(shè)計(jì),軟件工程也由傳統(tǒng)的軟件工程演變?yōu)槊嫦?對(duì)象對(duì)象的軟件工程,現(xiàn)正向更新一代的基于構(gòu)件的軟件工程的軟件工程,現(xiàn)正向更新一代的基于構(gòu)件的軟件工程邁進(jìn)。邁進(jìn)。 長期的實(shí)踐,軟件工程積累了許多行之有效的原理與長期的實(shí)踐,軟件工程積累了許多行之有效的原理與方法,已經(jīng)為產(chǎn)業(yè)界廣泛接受與應(yīng)用。方法,已經(jīng)為產(chǎn)業(yè)界廣泛接受與應(yīng)用。 上篇:傳統(tǒng)軟件工程上篇:傳統(tǒng)軟件工程第2章 軟件生存周期與軟件過程第3章 結(jié)構(gòu)化分析與設(shè)計(jì)第第2 2章章 軟件生存周期與軟

10、件過程軟件生存周期與軟件過程軟件生存周期軟件生存周期 傳統(tǒng)的軟件過程傳統(tǒng)的軟件過程軟件演化模型軟件演化模型 形式化方法模型形式化方法模型 統(tǒng)一過程和敏捷過程統(tǒng)一過程和敏捷過程 軟件可行性研究軟件可行性研究2.1 軟件生存周期軟件生存周期 軟件生存周期軟件生存周期(Software Life Cycle):一個(gè)軟件):一個(gè)軟件從問題提出立項(xiàng)開始,直到軟件產(chǎn)品最終退役從問題提出立項(xiàng)開始,直到軟件產(chǎn)品最終退役(廢棄不用)為止。(廢棄不用)為止。 軟件生存周期分為三個(gè)時(shí)期:軟件生存周期分為三個(gè)時(shí)期:計(jì)劃計(jì)劃、開發(fā)開發(fā)和和維護(hù)。維護(hù)。 整個(gè)軟件生存周期劃分為多個(gè)相對(duì)獨(dú)立的較小整個(gè)軟件生存周期劃分為多個(gè)相

11、對(duì)獨(dú)立的較小階階段段,給每個(gè)階段賦予確定而有限的任務(wù),從而降,給每個(gè)階段賦予確定而有限的任務(wù),從而降低了整個(gè)軟件工程的難度,提高了軟件開發(fā)生產(chǎn)低了整個(gè)軟件工程的難度,提高了軟件開發(fā)生產(chǎn)率。率。典型的軟件生存周期典型的軟件生存周期需求分析需求分析軟軟件分析件分析軟軟件件設(shè)計(jì)設(shè)計(jì)編碼編碼(測試測試)交付交付測試測試使用使用維護(hù)維護(hù)典型的典型的軟軟件生存周期的主要活件生存周期的主要活動(dòng)動(dòng)軟件生存周期的主要活動(dòng)軟件生存周期的主要活動(dòng)1. 需求分析 明確需要解決的問題(從用戶的視角)。 建立需求模型:描述軟件的功能、性能、約束、接口等。2. 軟件分析 在需求模型基礎(chǔ)上從開發(fā)人員的視角對(duì)軟件進(jìn)行分析。 建

12、立與需求模型一致的分析模型:描述軟件的邏輯模型。3. 軟件設(shè)計(jì) 將分析模型轉(zhuǎn)變?yōu)樵O(shè)計(jì)模型。軟件設(shè)計(jì)分為總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段。 總體設(shè)計(jì):確定軟件的總體結(jié)構(gòu)和全局性設(shè)計(jì)原則。 詳細(xì)設(shè)計(jì):確定各部件的數(shù)據(jù)結(jié)構(gòu)和操作。 建立軟件設(shè)計(jì)模型:考慮實(shí)現(xiàn)技術(shù)和平臺(tái)。軟件生存周期的主要活動(dòng)軟件生存周期的主要活動(dòng)4. 編碼 用程序設(shè)計(jì)語言將設(shè)計(jì)文檔翻譯成源程序。 建立軟件實(shí)現(xiàn)模型:包含現(xiàn)有軟件構(gòu)件包。5. 軟件測試 發(fā)現(xiàn)程序中的錯(cuò)誤、提高軟件質(zhì)量 單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試6. 運(yùn)行維護(hù)軟件過程與軟件生存周期的關(guān)系軟件過程與軟件生存周期的關(guān)系 軟件過程軟件過程 圍繞軟件開發(fā)所進(jìn)行的一系列活動(dòng)。

13、圍繞軟件開發(fā)所進(jìn)行的一系列活動(dòng)。 軟件過程模型軟件過程模型 把軟件生存周期中軟件開發(fā)活動(dòng)的有序流程用一個(gè)把軟件生存周期中軟件開發(fā)活動(dòng)的有序流程用一個(gè)合理的框架來規(guī)范描述。合理的框架來規(guī)范描述。 軟件過程模型是一種軟件過程的抽象表示法,它從軟件過程模型是一種軟件過程的抽象表示法,它從一個(gè)特定的角度表現(xiàn)一個(gè)開發(fā)過程。一個(gè)特定的角度表現(xiàn)一個(gè)開發(fā)過程。 軟件生存周期中的階段和軟件過程中的活動(dòng)是軟件生存周期中的階段和軟件過程中的活動(dòng)是基本一致的。基本一致的。2.2 2.2 傳統(tǒng)的軟件過程傳統(tǒng)的軟件過程 傳統(tǒng)的過程模型 瀑布模型 waterfall model 基于軟件生存周期的線性開發(fā)模型 快速原型模型

14、 rapid prototype model 基于原型的迭代化開發(fā)模型瀑布模型瀑布模型nW.Royce于1970年提出n線性開發(fā)模型n強(qiáng)調(diào)軟件文檔每一個(gè)階段必須完成規(guī)定的文檔每一個(gè)階段都要復(fù)審?fù)瓿傻奈臋n圖圖2.2 2.2 瀑布模型的瀑布模型的階階段段與與文文檔檔需求分析需求分析需求需求規(guī)規(guī)格格說說明明軟軟件分析件分析與總與總體體設(shè)計(jì)設(shè)計(jì)軟軟件件結(jié)構(gòu)圖結(jié)構(gòu)圖模模塊說塊說明明系系統(tǒng)測試統(tǒng)測試確確認(rèn)測試認(rèn)測試綜綜合合測試測試程序程序清單清單詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)編編 碼碼用用戶戶要求要求單單元元測試測試瀑布模型的階段與文檔瀑布模型瀑布模型 特點(diǎn)1. 階段的順序性和依賴性2. 推遲實(shí)現(xiàn)的觀點(diǎn)3. 質(zhì)量保證的

15、觀點(diǎn) 存在問題 不適合需求模糊的系統(tǒng) 開發(fā)初始階段很難徹底弄清軟件需求快速原型模型快速原型模型需求原型開發(fā)最終系統(tǒng)設(shè)計(jì)原型評(píng)價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶反饋快速原型法的過程模型快速原型模型快速原型模型 特點(diǎn) “逼真”的原型可以使用戶迅速作出反饋。 循環(huán)回溯和迭代:非線性模型。 使用快速開發(fā)工具。 種類 漸進(jìn)型:對(duì)原型補(bǔ)充和修改獲得最終系統(tǒng)。 拋棄型:原型廢棄不用。 應(yīng)防止的偏向 舍不得拋棄,從而影響軟件質(zhì)量。2.3 2.3 軟件演化模型軟件演化模型 演化開發(fā)模型:使所開發(fā)的軟件在迭代中逐步完善,是漸進(jìn)式的開發(fā)模型,也稱為迭代化開發(fā)模型。 增量模型(incremental model) 螺旋模型(spir

16、al model) 構(gòu)件集成模型(component integration model) 增量模型增量模型 增量模型是瀑布模型的順序特征與原型法的迭代特征相結(jié)合的產(chǎn)物,把軟件看作一系列相互聯(lián)系的增量,每次迭代完成一個(gè)增量。 增量 小而可用的軟件。 第一個(gè)增量通常是軟件的核心。 特點(diǎn) 在前面增量的基礎(chǔ)上開發(fā)后面的增量。 每個(gè)增量的開發(fā)可用瀑布或快速原型模型。 每個(gè)增量開發(fā)的順序性和總體的迭代性相結(jié)合。增量模型增量模型構(gòu)構(gòu)件件1 1:需求需求設(shè)計(jì)設(shè)計(jì)實(shí)現(xiàn)實(shí)現(xiàn)和集成和集成交付客交付客戶戶構(gòu)構(gòu)件件2 2:需求需求設(shè)計(jì)設(shè)計(jì)實(shí)現(xiàn)實(shí)現(xiàn)和集成和集成交付客交付客戶戶構(gòu)構(gòu)件件3 3:需求需求設(shè)計(jì)設(shè)計(jì)實(shí)現(xiàn)實(shí)現(xiàn)和集

17、成和集成交付客交付客戶戶構(gòu)構(gòu)件件n n:需求需求設(shè)計(jì)設(shè)計(jì)實(shí)現(xiàn)實(shí)現(xiàn)和集成和集成交付客交付客戶戶增量模型規(guī)規(guī)格格說說明明組組設(shè)計(jì)組設(shè)計(jì)組實(shí)現(xiàn)實(shí)現(xiàn)和集成和集成組組螺旋模型螺旋模型 特點(diǎn)特點(diǎn) 瀑布模型(順序性、邊開發(fā)邊復(fù)審)瀑布模型(順序性、邊開發(fā)邊復(fù)審)+ +快速原型(快速原型(迭代性)迭代性) 風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析- -發(fā)現(xiàn)、控制風(fēng)險(xiǎn)發(fā)現(xiàn)、控制風(fēng)險(xiǎn) 一個(gè)螺旋一個(gè)螺旋式周期式周期 計(jì)劃:確定目標(biāo),選擇方案,選定完成目標(biāo)的策略計(jì)劃:確定目標(biāo),選擇方案,選定完成目標(biāo)的策略 風(fēng)險(xiǎn)分析:從風(fēng)險(xiǎn)角度分析該策略風(fēng)險(xiǎn)分析:從風(fēng)險(xiǎn)角度分析該策略 開發(fā):啟動(dòng)一個(gè)開發(fā)活動(dòng)開發(fā):啟動(dòng)一個(gè)開發(fā)活動(dòng) 評(píng)審:評(píng)價(jià)前一步的結(jié)果評(píng)審:

18、評(píng)價(jià)前一步的結(jié)果,計(jì)劃下一輪的工作計(jì)劃下一輪的工作 螺旋模型螺旋模型構(gòu)件集成模型構(gòu)件集成模型 構(gòu)件集成模型主要適用于面向?qū)ο蟮能浖_發(fā)。 面向?qū)ο蟮幕靖拍?對(duì)象Object 類Class 繼承Inheritance 消息Message 面向?qū)ο?對(duì)象+類+繼承+消息通信構(gòu)件集成模型構(gòu)件集成模型 構(gòu)件 在某個(gè)領(lǐng)域內(nèi)具有通用性,可以復(fù)用的軟件部件 將可以復(fù)用的構(gòu)件存儲(chǔ)起來,形成構(gòu)件庫構(gòu)件庫 特點(diǎn) 面向?qū)ο?基于構(gòu)件庫 融合螺旋模型特征 支持軟件開發(fā)的迭代方法 軟件復(fù)用構(gòu)件集成模型構(gòu)件集成模型2.4 2.4 形式化方法模型形式化方法模型 形式化方法模型:基于程序變換和驗(yàn)證技術(shù)的軟件開發(fā) 轉(zhuǎn)換模型(

19、transformational model) 凈室模型(cleanroommodel)轉(zhuǎn)換模型轉(zhuǎn)換模型 開發(fā)過程開發(fā)過程 第一步:第一步:確定形式化需求規(guī)格說明書(使用形式確定形式化需求規(guī)格說明書(使用形式化語言)化語言) 第二部步:第二部步:進(jìn)行自動(dòng)的程序變換(由變換系統(tǒng)完進(jìn)行自動(dòng)的程序變換(由變換系統(tǒng)完成,產(chǎn)生形式化開發(fā)記錄)成,產(chǎn)生形式化開發(fā)記錄) 第三步:第三步:針對(duì)形式化開發(fā)記錄進(jìn)行測試針對(duì)形式化開發(fā)記錄進(jìn)行測試 特點(diǎn)特點(diǎn) 形式化軟件開發(fā)方法形式化軟件開發(fā)方法 基于模型的,基于代數(shù)結(jié)構(gòu)的,基于時(shí)序邏輯的基于模型的,基于代數(shù)結(jié)構(gòu)的,基于時(shí)序邏輯的 形式化需求規(guī)格說明形式化需求規(guī)格說明

20、 變換技術(shù)變換技術(shù) 程序自動(dòng)生成技術(shù)程序自動(dòng)生成技術(shù) 確保正確確保正確轉(zhuǎn)換模型轉(zhuǎn)換模型形式化形式化規(guī)規(guī)格格說說明明與與需求需求比比較較后后修正修正變換變換2 2變換變換1 1變換變換n n測試測試形式化形式化開發(fā)記錄開發(fā)記錄系系統(tǒng)統(tǒng)需求需求目目標(biāo)標(biāo)系系統(tǒng)統(tǒng)轉(zhuǎn)換模型轉(zhuǎn)換模型凈室模型凈室模型 凈室思想 在分析和設(shè)計(jì)階段消除錯(cuò)誤。 在“潔凈”狀態(tài)下實(shí)現(xiàn)軟件制作。 增量模型 把軟件看成一系列的增量。每個(gè)增量是一個(gè)用形式化方式表示的“盒”。 形式化 盒結(jié)構(gòu)表示分析和設(shè)計(jì)。 正確性驗(yàn)證。凈室模型凈室模型需求需求收集收集盒盒結(jié)構(gòu)結(jié)構(gòu)規(guī)約規(guī)約形式化形式化設(shè)計(jì)設(shè)計(jì)統(tǒng)計(jì)統(tǒng)計(jì)性使性使用用測試測試正確性正確性證證明明

21、代代碼碼生成生成與檢查與檢查測試計(jì)劃測試計(jì)劃認(rèn)證認(rèn)證需求需求收集收集盒盒結(jié)構(gòu)結(jié)構(gòu)規(guī)約規(guī)約形式化形式化設(shè)計(jì)設(shè)計(jì)統(tǒng)計(jì)統(tǒng)計(jì)性使性使用用測試測試正確性正確性證證明明代代碼碼生成生成與檢查與檢查測試計(jì)劃測試計(jì)劃認(rèn)證認(rèn)證需求需求收集收集盒盒結(jié)構(gòu)結(jié)構(gòu)規(guī)約規(guī)約形式化形式化設(shè)計(jì)設(shè)計(jì)統(tǒng)計(jì)統(tǒng)計(jì)性使性使用用測試測試正確性正確性證證明明代代碼碼生成生成與檢查與檢查測試計(jì)劃測試計(jì)劃認(rèn)證認(rèn)證增量增量1增量增量2增量增量n凈室模型凈室模型軟件過程模型的特點(diǎn)匯總軟件過程模型的特點(diǎn)匯總開發(fā)模型開發(fā)模型特特 點(diǎn)點(diǎn)適用場合適用場合瀑布模型瀑布模型線性模型,每一階段必須完成規(guī)定的文檔線性模型,每一階段必須完成規(guī)定的文檔需求明確的中、小

22、型軟件開發(fā)需求明確的中、小型軟件開發(fā)快速原型模型快速原型模型用戶介入早,通過迭代完善用戶需求,原型廢用戶介入早,通過迭代完善用戶需求,原型廢棄不用棄不用需求模糊的小型軟件開發(fā)需求模糊的小型軟件開發(fā)增量模型增量模型每次迭代完成一個(gè)增量,可用于每次迭代完成一個(gè)增量,可用于OO開發(fā)開發(fā)容易分塊的大型軟件開發(fā)容易分塊的大型軟件開發(fā)螺旋模型螺旋模型典型迭代模型,重視風(fēng)險(xiǎn)分析,可用于典型迭代模型,重視風(fēng)險(xiǎn)分析,可用于OO開發(fā)開發(fā)具有不確定性大型軟件開發(fā)具有不確定性大型軟件開發(fā)構(gòu)件集成模型構(gòu)件集成模型軟件開發(fā)與構(gòu)件開發(fā)平行進(jìn)行軟件開發(fā)與構(gòu)件開發(fā)平行進(jìn)行領(lǐng)域工程、行業(yè)的中型軟件開領(lǐng)域工程、行業(yè)的中型軟件開發(fā)發(fā)

23、轉(zhuǎn)換模型轉(zhuǎn)換模型形式化的規(guī)格說明,自動(dòng)的程序變換系統(tǒng)形式化的規(guī)格說明,自動(dòng)的程序變換系統(tǒng)理想化模型,尚無成熟工具支理想化模型,尚無成熟工具支持持凈室模型凈室模型形式化的增量開發(fā)模型,在潔凈狀態(tài)下實(shí)現(xiàn)軟形式化的增量開發(fā)模型,在潔凈狀態(tài)下實(shí)現(xiàn)軟件制作件制作開發(fā)團(tuán)隊(duì)熟悉形式化方法,中開發(fā)團(tuán)隊(duì)熟悉形式化方法,中小型軟件開發(fā)小型軟件開發(fā)2.5 統(tǒng)一過程和敏捷過程統(tǒng)一過程和敏捷過程 統(tǒng)一過程 Rational Unified Process(RUP)描述了軟件開發(fā)中各個(gè)環(huán)節(jié)應(yīng)該做什么、怎么做、什么時(shí)候做以及為什么要做,描述了一組以某種順序完成的活動(dòng)。 敏捷過程 Agile Development是一種以人

24、為核心、迭代、循序漸進(jìn)的開發(fā)方法,其軟件開發(fā)過程稱為“敏捷過程”。 RUP Rational Unified Process 將軟件開發(fā)分為四個(gè)階段: 初始(先啟)初始(先啟) 定義整個(gè)項(xiàng)目的范圍; 細(xì)化(精化)細(xì)化(精化) 制定項(xiàng)目計(jì)劃、描述功能、建立體系架構(gòu)框架; 構(gòu)造(構(gòu)建)構(gòu)造(構(gòu)建) 構(gòu)造軟件產(chǎn)品; 遷移遷移 將軟件產(chǎn)品移交到最終用戶手中。 每個(gè)階段分為若干次迭代,每次迭代有一個(gè)核心工作流,都會(huì)經(jīng)歷需求、分析、設(shè)計(jì)、實(shí)現(xiàn)、測試等活動(dòng)。敏捷過程敏捷過程 敏捷開發(fā)是以人為核心,以迭代方式循序漸進(jìn)開發(fā)的方法。 敏捷過程是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系的可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程

25、中軟件一直處于可用狀態(tài)。 敏捷開發(fā)的價(jià)值觀個(gè)人和交互勝過過程和工具 可以運(yùn)行的軟件勝過面面俱到的文檔 客戶合作勝過合同談判 響應(yīng)變化勝過遵循計(jì)劃敏捷開發(fā)的12條原則1.1.盡早、不斷地提交有價(jià)值的軟件盡早、不斷地提交有價(jià)值的軟件 2.2.允許改變需求,利用變化來為客戶創(chuàng)造優(yōu)勢(shì)允許改變需求,利用變化來為客戶創(chuàng)造優(yōu)勢(shì)3.3.盡快、不斷地提交可運(yùn)行的軟件盡快、不斷地提交可運(yùn)行的軟件4.4.在業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作在業(yè)務(wù)人員和開發(fā)人員必須天天都在一起工作5.5.以積極向上的員工為中心建立項(xiàng)目組,提供環(huán)境和支持,以積極向上的員工為中心建立項(xiàng)目組,提供環(huán)境和支持,并信任他們的工作并信任他們的工作6.6.在團(tuán)隊(duì)內(nèi)部重視面對(duì)面的交流在團(tuán)隊(duì)內(nèi)部重視面對(duì)面的交流7.7.依據(jù)可運(yùn)行軟件來評(píng)估項(xiàng)目的進(jìn)展依據(jù)可運(yùn)行軟件來評(píng)估項(xiàng)目的進(jìn)展8.8.提倡可持續(xù)的開發(fā)提倡可持續(xù)的開發(fā)9.9.時(shí)刻關(guān)注技術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷能力時(shí)刻關(guān)注技術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷能力10.10. 簡單是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論