-
- 素材大小:
- 3.73 MB
- 素材授權(quán):
- 免費(fèi)下載
- 素材格式:
- .ppt
- 素材上傳:
- ppt
- 上傳時(shí)間:
- 2018-05-10
- 素材編號(hào):
- 110134
- 素材類別:
- 學(xué)校PPT
-
素材預(yù)覽
這是一個(gè)關(guān)于軟件工程導(dǎo)論ppt模板,主要介紹軟件工程學(xué)概述可行性研究需求分析形式化說明技術(shù)、總體設(shè)計(jì)。軟件工程導(dǎo)論 Software Engineering 教師:尋楊濟(jì)寧學(xué)院計(jì)算機(jī)科學(xué)系09級(jí)總 目 錄第1章 軟件工程學(xué)概述第2章 可行性研究第3章 需求分析第4章 形式化說明技術(shù)第5章 總體設(shè)計(jì)第6章 詳細(xì)設(shè)計(jì)第7章 實(shí)現(xiàn)第8章 維護(hù) 第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期 1.4 軟件過程 1.5 小結(jié)習(xí)題 軟件的發(fā)展程序設(shè)計(jì)階段 程序系統(tǒng)階段 軟件工程階段 計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期(見WORD文檔)1.1.1 軟件危機(jī)的介紹軟件危機(jī):指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所 遇到的一系列嚴(yán)重問題。 軟件危機(jī)包含兩方面的問題:1、如何開發(fā)軟件以滿足對(duì)軟件日益增長(zhǎng)的需求;2、如何維護(hù)數(shù)量不斷膨脹的已有軟件。(1) 對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。(2) 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生,歡迎點(diǎn)擊下載軟件工程導(dǎo)論ppt模板哦。
軟件工程導(dǎo)論ppt模板是由紅軟PPT免費(fèi)下載網(wǎng)推薦的一款學(xué)校PPT類型的PowerPoint.
軟件工程導(dǎo)論 Software Engineering 教師:尋楊濟(jì)寧學(xué)院計(jì)算機(jī)科學(xué)系09級(jí)總 目 錄第1章 軟件工程學(xué)概述第2章 可行性研究第3章 需求分析第4章 形式化說明技術(shù)第5章 總體設(shè)計(jì)第6章 詳細(xì)設(shè)計(jì)第7章 實(shí)現(xiàn)第8章 維護(hù) 第1章 軟件工程學(xué)概述 1.1 軟件危機(jī) 1.2 軟件工程 1.3 軟件生命周期 1.4 軟件過程 1.5 小結(jié)習(xí)題 軟件的發(fā)展程序設(shè)計(jì)階段 程序系統(tǒng)階段 軟件工程階段 計(jì)算機(jī)軟件發(fā)展的三個(gè)時(shí)期(見WORD文檔) 1.1.1 軟件危機(jī)的介紹軟件危機(jī):指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所 遇到的一系列嚴(yán)重問題。 軟件危機(jī)包含兩方面的問題: 1、如何開發(fā)軟件以滿足對(duì)軟件日益增長(zhǎng)的需求; 2、如何維護(hù)數(shù)量不斷膨脹的已有軟件。 (1) 對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。 (2) 用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。 (3) 軟件產(chǎn)品的質(zhì)量往往靠不住。 (4) 軟件常常是不可維護(hù)的。 (5) 軟件通常沒有適當(dāng)?shù)奈臋n資料。 1.1.2 產(chǎn)生軟件危機(jī)的原因軟件開發(fā)和維護(hù)過程中存在的嚴(yán)重問題, 1、與軟件本身的特點(diǎn)有關(guān); 2、和軟件開發(fā)與維護(hù)的方法不正確有關(guān)。 軟件的特點(diǎn): 1、軟件是邏輯的而不是物理的產(chǎn)品。 如、皇帝的新衣 2、軟件是由開發(fā)或工程化而形成的,而不是傳統(tǒng)意義上的制造產(chǎn)生的。意味著軟件項(xiàng)目不能象硬件制造項(xiàng)目那樣來管理。 軟件的特點(diǎn): 4、軟件的成本相對(duì)昂貴。 5、軟件本身是復(fù)雜的。 6、軟件的開發(fā)尚未完全擺脫手工藝的方式。 1.1.3 消除軟件危機(jī)的途徑 解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。 軟件工程正是從管理和技術(shù)兩方面研究如何更好地開發(fā)和維護(hù)計(jì)算機(jī)軟件的一門新興學(xué)科。 1.2 軟件工程 1.2.1 軟件工程的介紹軟件工程:采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它。 軟件工程的兩個(gè)典型定義: 1968年在第一屆NATO會(huì)議上給出的定義:“軟件工程就是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。” 1993年IEEE給出的更全面的定義:“軟件工程是: ①把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件; ②研究①中提到的途徑。” 軟件工程具有的本質(zhì)特性: 1. 軟件工程關(guān)注于大型程序的構(gòu)造 3. 軟件經(jīng)常變化 4. 開發(fā)軟件的效率非常重要 5. 和諧地合作是開發(fā)軟件的關(guān)鍵 6. 軟件必須有效地支持它的用戶 7. 在軟件工程領(lǐng)域中是由具有一種文化背景的人代替具有另一種文化背景的人 軟件工程師的專家通常并不是他們開發(fā)的應(yīng)用系統(tǒng)領(lǐng)域的專家。缺乏應(yīng)用領(lǐng)域的相關(guān)知識(shí),是軟件開發(fā)項(xiàng)目出現(xiàn)問題的常見原因。 1.2.2 軟件工程的基本原理 著名的軟件工程專家B.W.Boehm綜合學(xué)者們的100多條意見并總結(jié)了TRW公司多年開發(fā)軟件的經(jīng)驗(yàn),于1983年提出了軟件工程的7條基本原理,它是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合。 軟件工程的7條基本原理:用分階段的生命周期計(jì)劃嚴(yán)格管理 2. 堅(jiān)持進(jìn)行階段評(píng)審第一、大部分錯(cuò)誤是在編碼之前造成的,根據(jù)Boehm等人的統(tǒng)計(jì),設(shè)計(jì)錯(cuò)誤占軟件錯(cuò)誤的63%,編碼錯(cuò)誤僅占37%;第二、錯(cuò)誤發(fā)現(xiàn)與改正得越晚,所需付出的代價(jià)也越高。 3. 實(shí)行嚴(yán)格的產(chǎn)品控制 4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù) 5. 結(jié)果應(yīng)能清楚地審查 6. 開發(fā)小組的人員應(yīng)該少而精 當(dāng)開發(fā)小組人員數(shù)為N時(shí),可能的通信路徑M有N(N-1)/2條,隨著N的增大,通信開銷急劇增加。 N=1,M=0 N=2,M=1 N=3,M=3 N=4,M=6 N=5,M=10 N=6,M=15… 注:2-8人左右為宜。 7. 承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性 不僅要積極主動(dòng)地采納新的軟件技術(shù),而且要不斷總結(jié)經(jīng)驗(yàn)。 1.2.3 軟件工程方法學(xué) 軟件工程包括技術(shù)和管理兩方面的內(nèi)容,是技術(shù)與管理緊密結(jié)合所形成的工程學(xué)科。 軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué) 軟件開發(fā)過程 軟件工具和軟件工程環(huán)境 軟件工程管理:軟件管理學(xué) 軟件經(jīng)濟(jì)學(xué) 軟件心理學(xué) 軟件工程方法學(xué)3要素:方法、工具和過程。 方法:完成軟件開發(fā)各項(xiàng)任務(wù)的技術(shù)方法,“怎樣做?”;工具:提供的自動(dòng)或半自動(dòng)的軟件工程支撐環(huán)境;過程:規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。質(zhì)量:基礎(chǔ)。 目前使用得最廣泛的軟件工程方法學(xué): 傳統(tǒng)方法學(xué) 面向?qū)ο蠓椒▽W(xué) “軟件工程”課程與其它軟件專業(yè)課的區(qū)別: (1) 立足于系統(tǒng)的整體。 (2) 講授系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、 測(cè)試及維護(hù)的理論和方法。 (3) 構(gòu)筑一個(gè)軟件系統(tǒng),實(shí)踐 軟件開發(fā)全過程。 “軟件工程”課程教學(xué)與實(shí)踐的目標(biāo) 轉(zhuǎn)變對(duì)軟件的認(rèn)識(shí): 上升 程序 系統(tǒng) 轉(zhuǎn)變思維定式: 上升 程序員 系統(tǒng)工程師 工程化訓(xùn)練 1.3 軟件生命周期 一個(gè)軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,要經(jīng)歷一個(gè)漫長(zhǎng)的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長(zhǎng)的時(shí)期稱為生命周期。(3頁(yè)) [軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)3個(gè)時(shí)期組成。軟件定義時(shí)期:劃分成3個(gè)階段,即問題定義、可行性研究和需求分析。開發(fā)時(shí)期:由4個(gè)階段組成,總體設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼和單元測(cè)試,綜合測(cè)試。其中前兩個(gè)階段又稱為系統(tǒng)設(shè)計(jì),后兩個(gè)階段又稱為系統(tǒng)實(shí)現(xiàn)。維護(hù)時(shí)期:主要任務(wù)是使軟件持久地滿足用戶的需要。] 軟件生命周期每個(gè)階段的基本任務(wù): 1. 問題定義 “要解決的問題是什么?” (why to do?) 2. 可行性研究 “對(duì)于上一個(gè)階段所確定的問題 有行得通的解決辦法嗎?” 3. 需求分析(what to do?) “為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”。 4. 總體設(shè)計(jì) “概括地說,應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?” 5. 詳細(xì)設(shè)計(jì) “應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?” 6. 編碼和單元測(cè)試寫出正確的容易理解、容易維護(hù)的程序模塊。 7. 綜合測(cè)試通過各種類型的測(cè)試及調(diào)試使軟件達(dá)到預(yù)定的要求。 8. 軟件維護(hù)通過各種必要的維護(hù)活動(dòng)使系統(tǒng)持久地滿足用戶的需要。 1.4 軟件過程 軟件過程:為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。 通常使用生命周期模型/生存期模型/過程模型/開發(fā)模型/工程范型簡(jiǎn)潔地描述軟件過程。 邊做邊改模型(Build and Fix Model):許多產(chǎn)品都是用“邊做邊改”模型開發(fā)的。沒有規(guī)格說明,沒有經(jīng)過設(shè)計(jì)。隨著客戶需要一次又一次不斷地修改。開發(fā)費(fèi)用高,維護(hù)困難。特點(diǎn): 適用于小程序。 1.4.1 瀑布模型 (Waterfall Model) 1970年Winston Royce提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被廣泛采用的軟件開發(fā)模型。開發(fā)成功的軟件項(xiàng)目也有幾十個(gè)。 圖1.2 傳統(tǒng)的瀑布模型 按照傳統(tǒng)瀑布模型開發(fā)軟件的特點(diǎn): 1. 階段間具有順序性和依賴性 ①前一階段的工作完成后,才能開始后一階段的工作; ②前一階段的輸出文檔是后一階段的輸入文檔,前一階段的輸出文檔正確,后一階段的工作才能獲得正確的結(jié)果。 2. 推遲實(shí)現(xiàn)的觀點(diǎn) 對(duì)于規(guī)模較大的軟件項(xiàng)目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時(shí)間反而越長(zhǎng)。 3. 質(zhì)量保證的觀點(diǎn)(1) 每個(gè)階段都必須完成規(guī)定的文檔。(2) 每個(gè)階段結(jié)束前都要對(duì)所完成的文檔進(jìn)行評(píng)審,以便盡早發(fā)現(xiàn)問題,改正錯(cuò)誤。 [傳統(tǒng)的瀑布模型過于理想化了,實(shí)際的瀑布模型是帶“反饋環(huán)”的,如圖1.3(實(shí)線箭頭表示開發(fā)過程,虛線箭頭表示維護(hù)過程)。當(dāng)在后面階段發(fā)現(xiàn)前面階段的錯(cuò)誤時(shí),需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來繼續(xù)完成后面階段的任務(wù)。] 圖1.3 實(shí)際的瀑布模型 1.4.2原型模型(快速原型模型 Rapid Prototype Model)開發(fā)過程:首先聽取用戶意見和用戶一起確定軟件的目標(biāo),然后快速設(shè)計(jì)建造一個(gè)軟件的模型或原型,以用戶看得見的部分,如輸入、輸出、交互界面為主。建造后的軟件原型交由用戶測(cè)試并聽取用戶意見,明確先前不明確的東西,在原型的基礎(chǔ)上,再次開發(fā)軟件,然后再把它交給用戶測(cè)試評(píng)估。如此反復(fù),直到滿足用戶要求。 圖1.4 快速原型模型 無反饋環(huán)的瀑布模型:前期已通過與用戶交互得到驗(yàn)證, 無需后期的反饋 優(yōu)點(diǎn): 關(guān)注滿足客戶需求。缺點(diǎn): 快速原型內(nèi)部結(jié)構(gòu)并不重要,重要的是迅速構(gòu)建原型,并迅速修改,以反應(yīng)客戶需求。可能導(dǎo)致系統(tǒng)設(shè)計(jì)差,效率低,難于維護(hù)。一旦需求確定,往往快速原型將被拋棄。 1.4.3增量模型(遞增模型) (Incremental Model) 思考:1、需求確定 2、象構(gòu)造硬件那樣組裝一次完成 增量模型:先完成一個(gè)系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能 (系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。 系統(tǒng)的總體設(shè)計(jì)在初始子集設(shè)計(jì)階段就應(yīng)作出設(shè)想。 【圖1.6 風(fēng)險(xiǎn)更大的增量模型】 優(yōu)點(diǎn): 開發(fā)早期反饋及時(shí),易于維護(hù)。缺點(diǎn): 需要非常好的體系結(jié)構(gòu),如果體系結(jié)構(gòu)不夠強(qiáng)壯可能導(dǎo)致設(shè)計(jì)差,效率低。 1.4.4 螺旋模型(Sprial Model) 思考:1、需求不確定 2、存在風(fēng)險(xiǎn) 特點(diǎn): 優(yōu)點(diǎn): 由風(fēng)險(xiǎn)驅(qū)動(dòng),支持現(xiàn)有軟件的重用。缺點(diǎn): 軟件開發(fā)人員應(yīng)該擅長(zhǎng)尋找可能的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來更大的風(fēng)險(xiǎn)。適用范圍: 只適用于大規(guī)模軟件項(xiàng)目,特別是內(nèi)部項(xiàng)目。 1.4.5 噴泉模型: 主要用于支持面向?qū)ο箝_發(fā)過程。系統(tǒng)某個(gè)部分常常重復(fù)工作多次,相關(guān)對(duì)象在每次迭代中隨之加入演進(jìn)的軟件成分。 1.4.5 噴泉模型: 主要用于支持面向?qū)ο箝_發(fā)過程。在整個(gè)開發(fā)過程中都使用統(tǒng)一的軟件概念“對(duì)象”,很容易實(shí)現(xiàn)各個(gè)開發(fā)步驟的多次反復(fù)迭代。降低出錯(cuò)的可能性。 1.4.6 Rational統(tǒng)一過程(RUP):由Rational軟件公司推出。 6條軟件開發(fā)經(jīng)驗(yàn): 1、迭代式開發(fā) 2、管理需求 3、使用基于構(gòu)件的體系結(jié)構(gòu) 4、可視化建模 5、驗(yàn)證軟件質(zhì)量 6、控制軟件變更 傳統(tǒng)上,組織項(xiàng)目的方法是使其按順序一次完成每個(gè)工作流程。 通常會(huì)導(dǎo)致在整個(gè)分析、設(shè)計(jì)和實(shí)施階段隱藏下來的問題會(huì)在隨后的實(shí)施階段暴露出來,出現(xiàn)集成“堆積”;隨著較長(zhǎng)調(diào)試周期的開始,項(xiàng)目的進(jìn)度會(huì)逐漸停頓下來。 迭代方法:多次執(zhí)行各個(gè)開發(fā)工作流程,從而更好地理解需求、設(shè)計(jì)出強(qiáng)壯的構(gòu)架、組建好開發(fā)組織并最終交付一系列漸趨完善的實(shí)施成果。類似小型的瀑布式項(xiàng)目。 迭代式方法的結(jié)果 :信息集隨著各開發(fā)階段逐步演進(jìn) 適用范圍:不同應(yīng)用領(lǐng)域,或大或小的項(xiàng)目。 1.5 小結(jié)習(xí)題 程序是根據(jù)人的需求存在的。人的需求越來越多,程序隨著人的需求一步一步地升級(jí)。故障并不是程序本身的問題,只能說明滿足不了人們的需求,那它就要被淘汰,或者進(jìn)行改進(jìn)。如果程序早期設(shè)計(jì)的時(shí)候不合理,以后需要修改的時(shí)候會(huì)相當(dāng)麻煩,甚至比重寫一個(gè)程序更麻煩。 就像建一棟大樓,樓層越高,地基就要打得越深。 所以一定要及早發(fā)現(xiàn)并改正錯(cuò)誤。 1-5 根據(jù)歷史數(shù)據(jù)可以做出如下的假設(shè):對(duì)計(jì)算機(jī)存儲(chǔ)容量的需求大致按下面公式描述的趨勢(shì)逐年增加:M=4080e0.28(Y-1960) (字) 存儲(chǔ)器的價(jià)格按下面公式描述的趨勢(shì)逐年下降: P1=0.3×0.72Y-1974(美分/位) 如果計(jì)算機(jī)字長(zhǎng)為16位,存儲(chǔ)器價(jià)格下降的趨勢(shì)為: P2=0.048×0.72Y-1974(美元/字) 上列公式中Y代表年份,M是存儲(chǔ)容量(字?jǐn)?shù)),P1和P2代表價(jià)格。 (3) 假設(shè)在1995年存儲(chǔ)器字長(zhǎng)為32位,一名程序員每天可開發(fā)出30條指令,程序員的月平均工資為6000美元,重復(fù)(1)、(2)題。 1-7 什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)缺點(diǎn),說明每種模型的適用范圍。 假設(shè)你被任命為一家軟件公司的項(xiàng)目負(fù)責(zé)人,管理該公司被廣泛應(yīng)用的字處理軟件的新版本開發(fā)。由于市場(chǎng)競(jìng)爭(zhēng)激烈,公司規(guī)定了嚴(yán)格的完成期限并已對(duì)外公布。你打算采用哪種軟件生命周期模型?為什么? 答: 首先從時(shí)間考慮,由于日期已經(jīng)嚴(yán)格規(guī)定,所以應(yīng)該著重考慮哪種模型有助于加快產(chǎn)品開發(fā)的進(jìn)度,使用增量模型可以并行開發(fā)工作,能夠加快開發(fā)進(jìn)度。 由已知可以得出3點(diǎn)結(jié)論: 一、舊版本相當(dāng)于一個(gè)原型,通過收集用戶對(duì)舊版本的反映,較容易確定對(duì)新版本的需求,沒必要再建立一個(gè)原型系統(tǒng); 二、該公司的軟件工程師對(duì)該軟件很熟悉,有豐富的經(jīng)驗(yàn),具有采用增量模型開發(fā)新版字處理軟件所需要的技術(shù)水平; 三、該軟件受到用戶的喜愛,今后很可能還要開發(fā)更新的版本,因此,應(yīng)該把該軟件的體系結(jié)構(gòu)設(shè)計(jì)成開放式的,利于今后的改進(jìn)和擴(kuò)充。 所以應(yīng)該采用增量模型。 例:Windows2000開發(fā)人員結(jié)構(gòu): 變換模型:變換模型是一種基于形式化規(guī)格說明語(yǔ)言及程序變換的軟件開發(fā)模型。 該模型只適合于軟件的形式化開發(fā)方法;需要嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)支持;需要一整套開發(fā)環(huán)境(如程序變換工具、定理證明工具等)的支持。 基于第四代技術(shù)的模型:第四代語(yǔ)言 (4GL) 是在大型數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是一種面向結(jié)果的非過程性語(yǔ)言。它獨(dú)立于具體的處理機(jī),有豐富的軟件工具支持,能統(tǒng)一利用和管理各種數(shù)據(jù)資源并能適應(yīng)不同水平用戶的需要。 軟件開發(fā)人員在定義軟件需求,給出需求規(guī)格說明之后,4GT工具可將該需求規(guī)格說明自動(dòng)轉(zhuǎn)換為程序代碼。大大減少了分析、設(shè)計(jì)、編碼和測(cè)試的時(shí)間。
軟件工程基礎(chǔ)ppt:這是軟件工程基礎(chǔ)ppt,包括了軟件需求分析與定義,可行性研究,可行性研究工作步驟,軟件設(shè)計(jì),軟件測(cè)試,軟件維護(hù),軟件維護(hù)的分類,軟件過程管理,類圖等內(nèi)容,歡迎點(diǎn)擊下載。
實(shí)用軟件工程ppt:這是實(shí)用軟件工程ppt,包括了軟件工程概述,軟件工程的概念,發(fā)展歷程,軟件工程的生命周期,建模的目的等內(nèi)容,歡迎點(diǎn)擊下載。
軟件工程類答辯ppt:這是軟件工程類答辯ppt,包括了系統(tǒng)介紹,研究背景,需求分析,系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)現(xiàn),總結(jié),致謝等內(nèi)容,歡迎點(diǎn)擊下載。