《第1章-軟件工程概述課件》由會員分享,可在線閱讀,更多相關(guān)《第1章-軟件工程概述課件(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,第1章 軟件工程概述,*,第1章 軟件工程概述,2024/12/13,第1章 軟件工程概述,第1章 軟件工程概述2023/10/4第1章 軟件工程概述,1,授課對象,軟件學(xué)院本科,40學(xué)時 課程設(shè)計2周(下學(xué)期),高級語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、,數(shù)據(jù)庫技術(shù),等等,授課學(xué)時,先修課程,第1章 軟件工程概述,2,授課對象 軟件學(xué)院本科 40學(xué)時 課程設(shè)計2周(,計算機科學(xué)與軟件工程,Computer Science,Customer,Theories,Computer,Function,Problem,Softw
2、are,Engineering,Tools and,Techniques to,Solve Problem,第1章 軟件工程概述,3,計算機科學(xué)與軟件工程Computer ScienceCus,初步了解,工程?,硬件工程?,軟件工程?,計算機工程?,工程:利用自然規(guī)律,創(chuàng)建一個使一部分,人受益的系統(tǒng).,第1章 軟件工程概述,4,初步了解工程:利用自然規(guī)律,創(chuàng)建一個使一部分第1章 軟件工,計算機工程 Computer Engineering,硬件工程 Hardware Engineering,研究硬件生產(chǎn)和硬件管理的工程學(xué)科.,計算機硬件及網(wǎng)絡(luò)分析、制定設(shè)計方案、,選型、配置、采購、驗收、安裝、
3、調(diào)試、,運行、培訓(xùn)、維護,第1章 軟件工程概述,5,計算機工程 Computer Engineering第1,軟件工程,Software Engineering,研究軟件開發(fā)、生產(chǎn)和管理的,工程學(xué)科,調(diào)研、,可行性論證、,正式立項,、,需求,分析、,項目策劃、,設(shè)計,、,編程、測試、,實施、,試運行、產(chǎn)品發(fā)布、用戶培訓(xùn)、產(chǎn)品復(fù)制、,銷售、,系統(tǒng)維護、,版本升級,.,采用科學(xué)的方法指導(dǎo)軟件的開發(fā)與維護!,初步了解,第1章 軟件工程概述,6,軟件開發(fā)模型,軟件開發(fā)過程,方法與技術(shù),軟件開發(fā)環(huán)境與工具,軟件管理過程(度量、成本),軟件企業(yè)文化,現(xiàn)代軟件工程研究的內(nèi)容,:,軟,件,開,發(fā),既,是,一,
4、門,科,學(xué),又,是,一,門,工,程,也,是,一,門,藝,術(shù),第1章 軟件工程概述,7,軟件開發(fā)模型現(xiàn)代軟件工程研究的內(nèi)容:軟又第1章 軟件工程概述,導(dǎo)讀,第1章緒論-提出問題,第2章 模型-全局觀點,第3章 項目計劃-管理觀點,第4、5章分析方法,需求分析-開發(fā)第1步最重要,第6章 軟件設(shè)計-實現(xiàn)的前提,第7章 實現(xiàn)-初始結(jié)果,第8章 測試 質(zhì)量保證-得到可交付的結(jié)果,第9章 維護-延長軟件生命期,第1章 軟件工程概述,8,導(dǎo)讀 第1章緒論-提出問題第2章 模型-全局觀點第3章,軟件工程教材叢書,需求分析系列,設(shè)計系列,實現(xiàn)系列,測試與度量系列,項目管理系列,質(zhì)量管理系列,面向?qū)ο蠹夹g(shù)系列,建
5、模語言系列,可用性與復(fù)用系列,前沿論題系列,軟件工程,軟件工程,方法與技術(shù),軟件項目管理,軟件過程系列,第1章 軟件工程概述,9,軟件工程教材叢書需求分析系列設(shè)計系列實現(xiàn)系列測試與度量系列項,史濟民等,軟件工程-原理、方法與應(yīng)用,(第二板),高等教育出板社,ISBN 7-04-011561-1,張海藩,軟件工程,人民郵電出版社,2002年3月第一版,周之英,現(xiàn)代軟件工程(上、中、下),科學(xué)出版社 2001年4月第一版,陳明,軟件工程學(xué)教程,科學(xué)出版社,2002年3月第一版,鄭人杰,軟件工程,清華大學(xué)出版社,中文參考書,第1章 軟件工程概述,10,史濟民等,軟件工程-原理、方法與應(yīng)用 中文參考書
6、第1章 軟,英文,參考書,Software Engineering Theory,and Practice(Second Edition),Author:Shari Lawrence Pfleeger,(軟件工程理論與實踐,高等教育出版社),Software Engineering A,Practitioners Approach,Author:Rogers.Pressman,(軟件工程實踐者的研究方法 機械工業(yè)出版社),第1章 軟件工程概述,11,英文參考書 Software Engineering The,基本要求,理解,軟件工程的思想和方法,掌握,軟件開發(fā)方法和工具,學(xué)會,按照工程化的方
7、法開發(fā)和維護軟件,具有,閱讀軟件工程方面資料的能力,為,實踐,及未來的軟件開發(fā)打基礎(chǔ),第1章 軟件工程概述,12,基本要求 理解軟件工程的思想和方法第1章 軟件工程概述12,聽課,復(fù)習(xí),閱讀,討論,練習(xí),從知到會,實踐,,從會到通,知識方法能力,如何學(xué)習(xí)軟件工程,講課,教書,學(xué)習(xí)讀書,知識課程,你們的收獲不會僅僅局限,在本課程之內(nèi),課堂教學(xué),復(fù)習(xí),作業(yè),參考資料,實踐,滲 透,第1章 軟件工程概述,13,如何學(xué)習(xí)軟件工程 講課教書 你們的收獲不會,考試,課堂小考核,占成績的 10%,完成一個小型軟件系統(tǒng)的分析、設(shè)計文檔,階段性成果占成績的20%,考試成績占 70%,財富可以通過辛勤勞動獲取,,
8、也可能由于喜中彩票大獎獲得。,但知識卻必須是通過一點一滴,努力學(xué)習(xí)逐漸積累,珍惜每一天,每一節(jié)課,每一分鐘,誠信,第1章 軟件工程概述,14,考試課堂小考核,占成績的 10%財富可以通過辛勤勞動獲取,實踐作業(yè),分析和設(shè)計下列問題之一,并寫出文檔,.,1.,教學(xué)管理軟件,2.教學(xué)網(wǎng)站,3.網(wǎng)上售書,網(wǎng)上購物,4.超市管理,5.食堂管理,6.工寓管理,7.,自選,第1章 軟件工程概述,15,實踐作業(yè)分析和設(shè)計下列問題之一,并寫出文檔.第1章 軟件工程,第1章,軟件工程的概述,第1章 軟件工程概述,16,第1章第1章 軟件工程概述16,基本內(nèi)容,:,1.1,軟件,1.2 軟件工程的,概念,1.3 軟
9、件工程的,作用,1.4 軟件工程的,發(fā)展,1.5 軟件工程,三要素,1.6 軟件工程的,目標,第1章 軟件工程概述,17,基本內(nèi)容:第1章 軟件工程概述17,1.1 軟件,1.1.1 軟件的定義,:,20世紀五十年代,軟件=程序,面向過程的程序=算法+數(shù)據(jù)結(jié)構(gòu),20世紀六十年代,軟件=程序+文檔,20世紀七十年代 軟件=,程序+文檔+數(shù)據(jù),面向?qū)ο蟮某绦?對象+消息,面向構(gòu)件的程序=構(gòu)件+構(gòu)架,第1章 軟件工程概述,18,1.1 軟件1.1.1 軟件的定義:20世紀六十年代 軟件=,1.1.2 軟件的特征:,軟件是一個信息變換器;,軟件是產(chǎn)品交付使用的載體;,軟件是是被開發(fā)或設(shè)計的,而不是被制
10、造的;,軟件不會磨損,但維護困難。,故障率,時間,夭折,磨損,實際,理想,故,障,率,時間,修改,軟件故障曲線,硬,件故障曲線,圖 1-1 硬,件軟件故障,圖,第1章 軟件工程概述,19,1.1.2 軟件的特征:故障率時間夭折磨損實際理想故時間修,1.1.3,軟件的應(yīng)用,*系統(tǒng)軟件,*應(yīng)用軟件,*商業(yè)軟件,*工程和科學(xué)計算軟件,*嵌入式軟件,*個人計算機軟件,*人工智能軟件,*基于web軟件,*工具包軟件,第1章 軟件工程概述,20,1.1.3 軟件的應(yīng)用第1章 軟件工程概述20,1.2 軟件工程的概念,1.2.1,軟件工程的提出,軟件開發(fā)失敗的例子,1962年6月,美國飛向金星的第1個空間探
11、測器,(水手1號)飛行中偏移了航線,失敗了.,原因:飛艙中的導(dǎo)航程序中的一個語句的語義錯,.,世界上精心設(shè)計的并花費巨額投資的美國阿波,羅8號太空飛船登月飛行計劃的軟件的錯誤,使,存儲器一部分信息丟失;阿波羅14號的飛行10天,中,出現(xiàn)18個軟件錯誤.,原因:軟件的可靠性問題,第1章 軟件工程概述,21,1.2 軟件工程的概念1.2.1 軟件工程的提出第1章 軟,1963,1966年IBM開發(fā)OS/360操作系統(tǒng),投資幾千萬美元,工作量5000多人年,,拖延幾年,才交付使用,而且每年要發(fā)現(xiàn),近100個錯誤。,美國肯尼迪發(fā)射的一枚“阿脫拉斯火箭,當(dāng)飛地面幾十英里高空時,翻轉(zhuǎn).地面控制中心被迫下令
12、炸毀,結(jié)果損失1850萬,美元,原因:飛行計劃程序漏掉一個“連”接字符,第1章 軟件工程概述,22,19631966年IBM開發(fā)OS/360操作系統(tǒng),投資幾千,通過比較,支持“美國航天飛機”的軟件由3,百萬行代碼組成,包括地面控制發(fā)射和飛行,的計算機,航天飛機本身就需10萬行代碼。,這樣一個反導(dǎo)彈軟件系統(tǒng)需要測試大量,的代碼.此外可靠性約束是不可能測試的。,許多軟件工程師認為一個“反彈道導(dǎo)彈系統(tǒng)”,只少需要1千萬行代碼,有人估計代碼在1億,行左右。,第1章 軟件工程概述,23,通過比較,支持“美國航天飛機”的軟件由3許多軟件工程師認為一,“安全臨界”軟件問題:安全臨界是指其可,靠性至少達到10
13、,-9,,也就說在工作10,9,小時,內(nèi)不能出現(xiàn)錯誤。為了觀察可靠性程度,,就必須使系統(tǒng)至少運行10,9,小時不會失敗。,但驗證10,9,小時不出錯,需要測試114,000,年,這實際上是不可能的。,這是一種無法實現(xiàn)的計劃。,第1章 軟件工程概述,24,“安全臨界”軟件問題:安全臨界是指其可第1章 軟件工程概述2,由上可看出:,軟件需求量不斷增大,復(fù)雜度越來越高,,軟件可靠性無保障,軟件維護費用不斷上升,軟件進度無法預(yù)測,成本增長無法控制,程序人員無限度地增加各個方面.,上述原因?qū)е铝?0年代末的“軟件危機.,第1章 軟件工程概述,25,由上可看出:第1章 軟件工程概述25,一系列軟件開發(fā)的失
14、敗引起人們的思考,,1968年北大西洋公約組織(NATO)的計算機,科學(xué)家在聯(lián)邦德國的幕尼黑召開的一次計,算機軟件國際會議上,對軟件開發(fā)的方法、,技術(shù)進行了廣泛的討論,首次提出了“,軟件工程,”的概念。,第1章 軟件工程概述,26,一系列軟件開發(fā)的失敗引起人們的思考,第1章 軟件工程概述2,1.2.2 軟件工程的含義,P.Wegner和B.Boehm認為:,科學(xué)知識在設(shè)計和構(gòu)造計算機程 序,以及開發(fā)、運作和維護這些程序所需求的有關(guān)文檔編制中的實際應(yīng)用。,F.L.Bauer認為,:,為了經(jīng)濟地獲得軟件,這個軟件是可靠的并且能在實在的計算機上工作,所需要的,健全的工作原理(方法)的確立和使用。,第
15、1章 軟件工程概述,27,1.2.2 軟件工程的含義 P.Wegner和B.Boehm,IEEE(83)指出:,軟件工程是開發(fā)、運行、維護和修復(fù)軟件的系統(tǒng)方法。,IEEE(93)指出:,軟件工程是將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運行和維護的過程,即將工程化的方法應(yīng)用于軟件開發(fā)中。,第1章 軟件工程概述,28,第1章 軟件工程概述28,解決60年代出現(xiàn)的軟件危機,解決軟件當(dāng)前面臨的技術(shù)問題,軟件可靠性、可用性、重用性、維護性等等,告訴人們怎樣去開發(fā)軟件、管理軟件,開發(fā)軟件即需要,干哪些“活”,對“開發(fā)”兩字做,一解析.,如何干活,,即有關(guān)開發(fā)模型和開發(fā)方法等技,術(shù)問題.,如何管
16、理,,即有關(guān)CMM等管理問題.,1.3,軟件工程的作用,第1章 軟件工程概述,29,解決60年代出現(xiàn)的軟件危機1.3 軟件工程的作用第1章,現(xiàn)代軟件開發(fā)對人才的要求,系統(tǒng)分析人員、設(shè)計人員、軟件架構(gòu)師、,軟件集成人員、高層管理人員、,中層項目經(jīng)理、軟件藍領(lǐng)工人、,實施和維護人員、,軟件售前人員、軟件營銷人員,提高軟件產(chǎn)品的質(zhì)量,降低軟件開發(fā)的成本.,第1章 軟件工程概述,30,現(xiàn)代軟件開發(fā)對人才的要求第1章 軟件工程概述30,1.4 軟件工程的發(fā)展,傳統(tǒng)的軟件工程時代,過程軟件工程時代,對象軟件工程時代,構(gòu)件軟件工程時代,發(fā)展方向:流水線裝配軟件工程的方向,發(fā)展(流水線生產(chǎn),網(wǎng)絡(luò)化,,服務(wù)化,全球化),第1章 軟件工程概述,31,1.4 軟件工程的發(fā)展 傳統(tǒng)的軟件工程時代第1章 軟件工程,為屏蔽計算機硬件的異構(gòu)性,發(fā)展了操作系統(tǒng),.NET/COM,Web Services,J2EE/EJB,UNIX,Windows,Linux,C/C+,語言,Java,語言,為屏蔽操作系統(tǒng)和編程語言的異構(gòu)性,發(fā)展了支撐軟件和中間件,為了屏蔽中間件之間的異構(gòu)性,出現(xiàn)了Web技術(shù)。,Fortran,語言,