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

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程概論Software Engineering賈恒彬E-mail: jiahengbin李恒E-mail:liheng軟件工程軟件業(yè)是信息時(shí)代的朝陽(yáng)產(chǎn)業(yè)oftware$軟件工程課程設(shè)計(jì)課程目的:充分理解軟件工程的概念、原理和典型的方法學(xué),掌握軟件項(xiàng)目的設(shè)計(jì)以及管理技術(shù)。課程安排:共32學(xué)時(shí);每周二3、4節(jié)課 緒論(2學(xué)時(shí)) 軟件開發(fā)模型和可行性研究(2學(xué)時(shí)) 軟件需求分析(4學(xué)時(shí)) 軟件設(shè)計(jì) (10學(xué)時(shí)) 軟件實(shí)現(xiàn)(4學(xué)時(shí)) 軟件維護(hù)(2學(xué)時(shí)) 軟件項(xiàng)目管理(6學(xué)時(shí)) 復(fù)習(xí)總結(jié)(2學(xué)時(shí))軟件的概念1、軟件softwaresoft+ware軟制品(軟體) 軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的

2、另一部分。 它包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。軟件的特點(diǎn). 軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體. 軟件的生產(chǎn)與硬件不同 . 在軟件的運(yùn)行和使用期間,沒有硬件那樣的機(jī)械 磨損,老化問題磨合調(diào)整磨損用壞修改點(diǎn)實(shí)際曲線理想曲線硬件失效率曲線時(shí)間失效率時(shí)間失效率軟件失效率曲線軟件的分類(功能)分類(1)基礎(chǔ)設(shè)施類:系統(tǒng)軟件、支撐軟件應(yīng)用類:應(yīng)用軟件分類(2)一般性軟件嵌入式軟件:嵌入在硬件中的操作系統(tǒng)和開發(fā)工具軟件軟件的分類(規(guī)模) 按開發(fā)軟件所需的 人力、時(shí)間以及完成的 源代碼行數(shù)。類別參加人數(shù)研制期限產(chǎn)品規(guī)模(源代碼行數(shù))微型小型中型大型甚大型極大型112-55-20100-10002

3、000-50001-4周1-6周1-2年2-3年4-5年5-10年約500行 約2000行 5000-50000行5萬(wàn)-10萬(wàn)行100萬(wàn)行1000萬(wàn)行軟件發(fā)展歷史軟件發(fā)展史40-50年代,實(shí)用高級(jí)語(yǔ)言出現(xiàn)前(直接二進(jìn)制編碼,主要用于解決科學(xué)計(jì)算問題,編程難以掌握,匯編語(yǔ)言出現(xiàn),程序質(zhì)量取決于個(gè)人技巧)60年代,軟件工程出現(xiàn)前(軟件應(yīng)用領(lǐng)域擴(kuò)大,高級(jí)語(yǔ)言出現(xiàn),硬件無(wú)關(guān)性,軟件危機(jī)出現(xiàn))70年代,軟件工程出現(xiàn)后(程序=算法+數(shù)據(jù)結(jié)構(gòu),結(jié)構(gòu)化思想的提出,軟件的分類)新世紀(jì)以來(lái),互聯(lián)網(wǎng)廣泛應(yīng)用后軟件產(chǎn)業(yè)軟件產(chǎn)業(yè)的地位教育部創(chuàng)建示范性軟件學(xué)院,培養(yǎng)軟件工程人才全球軟件產(chǎn)業(yè)發(fā)展(1)全球軟件產(chǎn)業(yè)發(fā)展(2)

4、全球軟件產(chǎn)業(yè)發(fā)展(3)全球軟件產(chǎn)業(yè)發(fā)展(4)中國(guó)軟件產(chǎn)業(yè)現(xiàn)狀(1)中國(guó)軟件產(chǎn)業(yè)現(xiàn)狀(2)中國(guó)軟件產(chǎn)業(yè)現(xiàn)狀(3)中國(guó)軟件產(chǎn)業(yè)發(fā)展的瓶頸從軟件產(chǎn)業(yè)分類上看,基礎(chǔ)軟件是瓶頸從軟件產(chǎn)業(yè)組織上看,缺乏大企業(yè)、軟件產(chǎn)業(yè)生態(tài)環(huán)境不完善是瓶頸從軟件技術(shù)上看,缺乏核心技術(shù)是瓶頸從軟件產(chǎn)業(yè)要素配置上看,高級(jí)人才缺乏、融資難是瓶頸 1.1軟件危機(jī)不斷增加的為大系統(tǒng)制造可靠軟件的困難度 20世紀(jì)60年代中期以前:程序規(guī)模小、軟件設(shè)計(jì)是一個(gè)隱含過程 20世紀(jì)60年代中期到70年代中期:軟件作坊軟件危機(jī) 1968年北大西洋公約組織的計(jì)算機(jī)科學(xué)家國(guó)際會(huì)議軟件工程IBM 360系統(tǒng)開發(fā)時(shí)間:1963-1966年投入人力:50

5、00人/年代碼量:100萬(wàn)行每個(gè)版本都是從上一個(gè)版本找出1000個(gè)錯(cuò)誤而修訂的結(jié)果正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷的越深,最后無(wú)法逃脫滅頂?shù)臑?zāi)難。1.1軟件危機(jī) 1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序: DO 5 I=1,3 誤寫為:DO 5 I=1 . 31967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開降落傘而燒毀。1.1.1 軟件危機(jī)的介紹軟件危機(jī):指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題軟件危機(jī)包含兩個(gè)問題:如何開發(fā)、如何維護(hù)軟件危機(jī)典型表現(xiàn):(1) 對(duì)軟件開發(fā)

6、成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確(2) 用戶對(duì)“已完成的“軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生(3) 軟件產(chǎn)品的質(zhì)量往往靠不住(4) 軟件常常是不可維護(hù)的(5) 沒有文檔資料(6) 軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升(7) 軟件開發(fā)生產(chǎn)率1.1.2 產(chǎn)生軟件危機(jī)的原因軟件本身的特點(diǎn)、軟件開發(fā)和維護(hù)的方法錯(cuò)誤軟件不同于硬件,它是計(jì)算機(jī)系統(tǒng)中的邏輯部件而不是物理部件。管理和控制軟件開發(fā)過程相當(dāng)困難。運(yùn)行中發(fā)現(xiàn)錯(cuò)誤,很可能是遇到了一個(gè)在開發(fā)時(shí)期引入的,在測(cè)試階段沒能檢測(cè)出來(lái)的故障。因此,軟件維護(hù)通常意味著改正或修改原來(lái)的設(shè)計(jì),這就在客觀上使得軟件較難維護(hù)。軟件規(guī)模大,程序的復(fù)雜性將隨著程序規(guī)模的增加而

7、呈指數(shù)上升 如何保證每個(gè)人完成的工作合在一起確實(shí)能構(gòu)成一個(gè)高質(zhì)量的大型軟件系統(tǒng),更是一個(gè)極端復(fù)雜困難的問題,不僅涉及許多技術(shù)問題,諸如分析方法、設(shè)計(jì)方法、形式說(shuō)明方法、版本控制等,更重要的是必須有嚴(yán)格而科學(xué)的管理。與軟件開發(fā)和維護(hù)有關(guān)的許多錯(cuò)誤認(rèn)識(shí)和作法的形成,可以歸因于在計(jì)算機(jī)系統(tǒng)發(fā)展的早期軟件開發(fā)的個(gè)體化特點(diǎn)。錯(cuò)誤認(rèn)識(shí)和作法主要表現(xiàn)為忽視軟件需求分析的重要性,認(rèn)為軟件開發(fā)就是寫程序并設(shè)法使之運(yùn)行,輕視軟件維護(hù)等。事實(shí)上,對(duì)用戶要求沒有完整準(zhǔn)確的認(rèn)識(shí)就匆忙著手編寫程序是許多軟件開發(fā)工程失敗的主要原因之一。軟件的生命周期:一個(gè)軟件從定義、開發(fā)、使用和維護(hù),直到最終被廢棄,要經(jīng)歷一個(gè)漫長(zhǎng)的周期。

8、問題定義可行性研究需求分析軟件設(shè)計(jì)(總體設(shè)計(jì)和詳細(xì)設(shè)計(jì))編寫程序(軟件開發(fā)全部工作量的10%-20%)測(cè)試(軟件開發(fā)全部工作量的40%-50%)Boehm指出:軟件是程序以及開發(fā)、使用和維護(hù)程序需要的所有文擋?!败浖S護(hù) 嚴(yán)重的問題是,在軟件開發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,根據(jù)美國(guó)一些軟件公司的統(tǒng)計(jì)資料,在后期引入一個(gè)變動(dòng)比在早期引入相同變動(dòng)所需付出的代價(jià)高23個(gè)數(shù)量級(jí)。輕視維護(hù)是-個(gè)最大的錯(cuò)誤。許多軟件產(chǎn)品的使用壽命長(zhǎng)達(dá)10年甚至20年,在這樣漫長(zhǎng)的時(shí)期中不僅 a) 必須改正使用過程中發(fā)現(xiàn)的每一個(gè)潛伏的錯(cuò)誤。 b) 當(dāng)環(huán)境變化時(shí)(例如硬件或系統(tǒng)軟件更新?lián)Q代)還必須相應(yīng)地修改

9、軟件以適應(yīng)新的環(huán)境。 c) 必須經(jīng)常改進(jìn)或擴(kuò)充原來(lái)的軟件以滿足用戶不斷變化的需要。 所有這些改動(dòng)都屬于維護(hù)工作,而且是在軟件已經(jīng)完成之后進(jìn)行的,因此維護(hù)是極端艱巨復(fù)雜的工作,需要花費(fèi)很大代價(jià)。統(tǒng)計(jì)數(shù)據(jù)表明,實(shí)際上用于軟件維護(hù)的費(fèi)用占軟件總費(fèi)用的5570。軟件工程學(xué)的一個(gè)重要目標(biāo)就是提高軟件的可維護(hù)性,減少軟件維護(hù)的代價(jià)。1.1.3 消除軟件危機(jī)的途徑組織管理:軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。方法:應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)

10、展階段形成的一些錯(cuò)誤概念和做法。工具:應(yīng)該開發(fā)和使用更好的軟件工具。在軟件開發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作做得既快又好。如果把各個(gè)階段使用的軟件工具有機(jī)地集合成一個(gè)整體,支持軟件開發(fā)的全過程,則稱為軟件工程支撐環(huán)境。1.1.3 消除軟件危機(jī)的途徑組織管理:軟件開發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,軟件開發(fā)應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。方法:應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法,盡快消除在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和做法。工具:應(yīng)該開發(fā)和

11、使用更好的軟件工具。在軟件開發(fā)的每個(gè)階段都有許多繁瑣重復(fù)的工作需要做,在適當(dāng)?shù)能浖ぞ咻o助下,開發(fā)人員可以把這類工作做得既快又好。如果把各個(gè)階段使用的軟件工具有機(jī)地集合成一個(gè)整體,支持軟件開發(fā)的全過程,則稱為軟件工程支撐環(huán)境。1.1.4 軟件現(xiàn)狀危機(jī)依然存在對(duì)軟件的需求遠(yuǎn)超出現(xiàn)有的生成能力信息技術(shù)的爆炸性增長(zhǎng)促進(jìn)了對(duì)新軟件的空前需求軟件系統(tǒng)的規(guī)模和復(fù)雜性不斷增長(zhǎng)用來(lái)開發(fā)這些軟件的資源沒有與上述需求保持同步人們依賴于脆弱的軟件不可靠、缺乏安全性、性能下降、出錯(cuò)、難以升級(jí)73%的軟件項(xiàng)目被延遲、超資、取消或失敗構(gòu)造可靠、安全的軟件的技術(shù)能力不足過去40年,硬件性能至少跨越了8個(gè)重要的階段開發(fā)軟件的

12、能力未能與硬件提供的機(jī)會(huì)保持同步1.2 軟件工程的概念及范疇 1、“軟件工程”-Software Engineering 于1968年北大西洋公約組織(NATO)在德國(guó)召開的一次會(huì)議上提出 是把軟件當(dāng)作一種工業(yè)產(chǎn)品,要求 “采用工程化的 原理與方法對(duì)軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù) ”。 1993年IEEE進(jìn)一步給出了一個(gè)更全面更具體的定義:“軟件工程是: 把系統(tǒng)的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)過程,也就是把工程應(yīng)用于軟件; 研究中提到的途徑?!?.2.1 軟件工程的介紹軟件工程定義為: “采用工程的概念、原理、技術(shù)和方法來(lái)開發(fā)與維護(hù)軟件,把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠

13、得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)的開發(fā)出高質(zhì)量的軟件并維護(hù)它?!?2022/10/4 軟件工程學(xué) 軟件開發(fā)技術(shù) 軟件工程管理軟件開發(fā)方法學(xué) 軟件工具 軟件工程環(huán)境 軟件工程管理學(xué) 軟件經(jīng)濟(jì)學(xué) 軟件產(chǎn)權(quán)保護(hù) - 軟件工程學(xué)的范疇 軟件工程學(xué) 軟件開發(fā)方法為軟件開發(fā)提供了 “如何做” 的技術(shù)個(gè)性化方法-結(jié)構(gòu)化方法-面向?qū)ο蠓椒?軟件復(fù)用軟件工具為軟件開發(fā)提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境單個(gè)工具-工具箱、集成工具-環(huán)境軟件工程管理目的:為了按進(jìn)度及預(yù)算完成軟件計(jì)劃內(nèi)容:成本估算、進(jìn)度安排、人員組織、質(zhì)量保證等軟件工程學(xué)的研究范疇軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:1、第一代軟件工程 傳統(tǒng)的軟件

14、工程1.2.1 軟件工程的發(fā)展 60年代末到70年代為了克服“軟件危機(jī)” (Software crisis)提出“軟件工程”的名詞, 將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:2、第二代軟件工程 對(duì)象工程 80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。1.2.1 軟件工程的發(fā)展 80年代中開始,人們?cè)谲浖_發(fā)的實(shí)踐過程中認(rèn)識(shí)到:提高軟件生產(chǎn)率,保證軟件質(zhì)量的關(guān)鍵是“軟件過程”,是軟件開發(fā)和維護(hù)中的管理和支持能

15、力,逐步形成軟件過程工程。軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:3、第三代軟件工程 過程工程1.2.1 軟件工程的發(fā)展 90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開發(fā)可通過使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。軟件工程的發(fā)展已經(jīng)歷了四個(gè)重要階段:4、第四代軟件工程 構(gòu)件工程1.2.1 軟件工程的發(fā)展2022/10/4程序軟件的演變(即從傳統(tǒng)軟件開發(fā)到現(xiàn)代軟件開發(fā)) 軟件軟件產(chǎn)品傳統(tǒng)軟件開發(fā)現(xiàn)代軟件開發(fā) 1975 1989 2000 0.00016240營(yíng)業(yè)額增長(zhǎng)曲線 8037軟件工程的基本目標(biāo):付

16、出較低的開發(fā)成本達(dá)到要求的軟件功能取得較好的軟件性能開發(fā)的軟件易于移植需要較低的維護(hù)費(fèi)用能按時(shí)完成開發(fā),及時(shí)交付使用1.2.1軟件工程的特性38軟件工程的基本原理有:按軟件生存期分階段制定計(jì)劃并認(rèn)真實(shí)施;堅(jiān)持進(jìn)行階段評(píng)審;堅(jiān)持嚴(yán)格的產(chǎn)品控制;使用現(xiàn)代程序設(shè)計(jì)技術(shù);明確責(zé)任,使得工作結(jié)果能夠得到清楚的審查;用人少而精;不斷改進(jìn)開發(fā)過程。承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性1.2.2軟件工程的基本原理391.2.3軟件工程方法學(xué)軟件工程學(xué)定義為 “建立并使用完善的工程化原則, 以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法?!避浖こ贪ㄈ齻€(gè)要素:方法、工具和過程。傳統(tǒng)方法學(xué)生命周期方法學(xué)/結(jié)構(gòu)化范型從時(shí)間角度對(duì)軟件開發(fā)和維護(hù)的復(fù)雜問題進(jìn)行分解,把軟件生命的漫長(zhǎng)周期依次劃分為若干個(gè)階段,每個(gè)階段有相對(duì)獨(dú)立的任務(wù),然后逐步完成每個(gè)階段的任務(wù)。 文檔是通信的工具,它們清楚準(zhǔn)確地說(shuō)明了到這個(gè)時(shí)候?yàn)橹?,關(guān)于該項(xiàng)工程已經(jīng)知道了什么,同時(shí)確立了下一步工作的基礎(chǔ)。此外,文檔也起備忘錄的作用,在完成生命周期每個(gè)階段的任務(wù)時(shí),應(yīng)該采用適合該階段任務(wù)特點(diǎn)的系統(tǒng)化的技術(shù)方法結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論