軟件工程推進(jìn)方法課件_第1頁
軟件工程推進(jìn)方法課件_第2頁
軟件工程推進(jìn)方法課件_第3頁
軟件工程推進(jìn)方法課件_第4頁
軟件工程推進(jìn)方法課件_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程推進(jìn)方法軟件工程推進(jìn)方法第二章 軟件與軟件工程 程序(語言)軟件 軟件危機(jī) 軟件工程 第二章 軟件與軟件工程 程序(語言)軟件 軟件危機(jī) 軟件工第二章 軟件與軟件工程軟件 計(jì)算機(jī)和高級(jí)程序語言 標(biāo)志: 1946年美國賓夕法尼亞大學(xué)研制出第一臺(tái)電子計(jì)算機(jī) ENIAC(Electronic Numerical Integrator And Computer)計(jì)算機(jī)程序:1949年英國劍橋大學(xué)的M.V.Wilkes開發(fā)的電子延 遲存儲(chǔ)自動(dòng)計(jì)算機(jī) EDSAC(Electronic Delay Storage Automatic Calculator)根據(jù)著名數(shù)學(xué)家(Von.Naumann)倡導(dǎo)

2、的結(jié)構(gòu)程序的思想和理 論進(jìn)行設(shè)計(jì)的?;舅枷耄喊丫幹坪玫某绦蛐罘e在存儲(chǔ)器中(程序和數(shù)據(jù)混在 一起),從頭到尾解釋執(zhí)行。(最初的機(jī)器語言) 第二章 軟件與軟件工程軟件 第二章 軟件與軟件工程最初的程序都是機(jī)器語言,但 計(jì)算機(jī)硬件性能提高 計(jì)算機(jī)處理效率和處理方法的要求提高 計(jì)算機(jī)程序用的存儲(chǔ)器的容量擴(kuò)大計(jì)算機(jī)需求量擴(kuò)大 匯編語言 第二章 軟件與軟件工程計(jì)算機(jī)硬件性能提高 計(jì)算機(jī)處理效率和第二章 軟件與軟件工程高級(jí)語言1954年,產(chǎn)出了FORTRAN(科學(xué)計(jì)算);1959年,發(fā)表了Cobol(事務(wù)處理);1960年,發(fā)布了USP,ALGOL;1965年,發(fā)布了Basic PL/Z;1970年,發(fā)布

3、了Pascal;1972年,發(fā)布了C;1980年,發(fā)布了Ada;1983年,發(fā)布了C#;1993年,發(fā)布了Java. 機(jī)器語言或匯編語言依賴于計(jì)算機(jī)硬件本身,程序完成的效率低,高級(jí)語言不依賴于機(jī)種,先編譯成可執(zhí)行程序,通用性強(qiáng)。 第二章 軟件與軟件工程高級(jí)語言軟件的概念 定義 軟件(software)一詞源于60年代,soft+ware不同階段對(duì)軟件的認(rèn)識(shí)是不同的。 計(jì)算機(jī)發(fā)展初期,硬件的設(shè)計(jì)和生產(chǎn)占主導(dǎo)地位。 軟件定義僅僅是程序,生產(chǎn)方式是個(gè)體手工方式。從設(shè)計(jì)到編制在一個(gè)人頭腦中完成質(zhì)量取決于個(gè)人的編程技巧維護(hù)由本人完成 設(shè)計(jì)編制 第二章 軟件與軟件工程軟件的概念 設(shè)計(jì)編制 第二章 軟件與軟

4、件工程第二章 軟件與軟件工程軟件的概念定義 但隨著計(jì)算機(jī)應(yīng)用需求的擴(kuò)大,復(fù)雜度增加,計(jì)算機(jī)用于大型生產(chǎn)作業(yè),以及工程學(xué)原理引入到軟件開發(fā)和管理中,使得計(jì)算機(jī)軟件的內(nèi)涵發(fā)生深刻變化,并定義為: 軟件所開發(fā)的程序+數(shù)據(jù)+文檔資料 第二章 軟件與軟件工程軟件的概念第二章 軟件與軟件工程軟件的概念即:軟件是計(jì)算機(jī)系統(tǒng)中與硬件(Hardware)相互依存的另一部分,它包括程序(Program)、相關(guān)數(shù)據(jù)(Data)及說明文檔(Document)。其中, 程序是按照事先設(shè)計(jì)的功能和性能要求執(zhí)行的指令序列; 數(shù)據(jù)是程序能正常操縱信息的數(shù)據(jù)構(gòu); 文檔是與程序開發(fā)維護(hù)和使用相關(guān)的各種圖文資料。 第二章 軟件與軟

5、件工程軟件的概念第二章 軟件與軟件工程軟件的概念軟件的特點(diǎn) 軟件同傳統(tǒng)的工業(yè)品相比,有其獨(dú)特性。軟件是一種邏輯實(shí)體,具有抽象性。可記錄在紙,內(nèi)存,磁盤、光盤等,無法看到本身的形態(tài)。 分析 觀察 考慮 判斷 功能、性能等 第二章 軟件與軟件工程軟件的概念分析 觀察 考慮 判斷 功第二章 軟件與軟件工程軟件的概念軟件的特點(diǎn)軟件沒有明顯的制造過程(生產(chǎn)方式不同)。一旦研制,可大量復(fù)制。軟件的質(zhì)量控制貫穿在開發(fā)過程中。在使用中無磨損、老化問題。但隨適應(yīng)硬件、環(huán)境、需求的變化而進(jìn)行修改等。第二章 軟件與軟件工程軟件的概念第二章 軟件與軟件工程軟件的概念軟件對(duì)硬件和運(yùn)行環(huán)境有著不同程度的依賴性。軟件產(chǎn)品包

6、括通用的和定制的,且大多數(shù)為定制的。軟件的成本相當(dāng)昂貴。軟件開發(fā)工作涉及很多社會(huì)因素 eg: 機(jī)構(gòu)、體制、管理方式等。軟件的復(fù)雜性在增加。它是有史以來,人類生產(chǎn)的復(fù)雜度最高的工業(yè)產(chǎn)品。 第二章 軟件與軟件工程軟件的概念第二章 軟件與軟件工程軟件分類 軟件分類方法各種各樣,很難給出一個(gè)分類標(biāo)準(zhǔn),可從不同的角度分類。按規(guī)模大小劃分 大規(guī)模軟件:大型的航空管理系統(tǒng) 中規(guī)模軟件:財(cái)務(wù)管理系統(tǒng) 小規(guī)模軟件:工資計(jì)算 第二章 軟件與軟件工程軟件分類 硬件基本軟件硬件基本軟件硬件軟件第二章 軟件與軟件工程軟件分類 軟件分類方法各種各樣,很難給出一個(gè)分類標(biāo)準(zhǔn),可從不同的角度分類。按層次劃分使 用 者此階段的軟

7、件同于第4第5階段的個(gè)別應(yīng)用軟件中間件個(gè)別應(yīng)用軟件共通應(yīng)用軟件應(yīng)用軟件存儲(chǔ)器(ROM)存儲(chǔ)器(ROM)硬件軟件第1階段第2階段第3階段第4階段第5階段存儲(chǔ)器(ROM)個(gè)別應(yīng)用軟件共通應(yīng)用軟件硬件基本軟件存儲(chǔ)器(ROM)基本軟件軟件第二章 軟件與軟件工程軟件分類 使 用 者第二章 軟件與軟件工程軟件分類 按層次劃分基本軟件:系統(tǒng)軟件和支撐軟件基本軟件系統(tǒng)軟件 支撐軟件 操作系統(tǒng) 語言處理程序 服務(wù)性程序 數(shù)據(jù)庫管理系統(tǒng)計(jì)算機(jī)網(wǎng)絡(luò)軟件 協(xié)助用戶開發(fā)的工具軟件 第二章 軟件與軟件工程軟件分類 基本軟件系統(tǒng)軟件 支撐軟件第二章 軟件與軟件工程軟件分類 中間件:基本軟件和應(yīng)用軟件之間的軟 件,即它是把各

8、種各樣的應(yīng)用 軟件的共通部分抽取出來。目 的是減輕軟件開發(fā)的負(fù)擔(dān),提 高開發(fā)效率,如現(xiàn)在流行的工 作流軟件。應(yīng)用軟件:共通應(yīng)用軟件(商品化軟件) CAD、財(cái)務(wù) 個(gè)別應(yīng)用軟件(定制軟件) 第二章 軟件與軟件工程軟件分類 第二章 軟件與軟件工程軟件工程 軟件危機(jī)的出現(xiàn) 軟件是計(jì)算機(jī)系統(tǒng)不可分割的重要組成部分,軟件危機(jī)的出現(xiàn)則是計(jì)算機(jī)系統(tǒng)發(fā)展的產(chǎn)物。 20世紀(jì)40年代中期60年代中期: 軟件是為解決具體問題而專門編寫的,是規(guī)模比較小的程序,程序編寫者和使用者為同一人,軟件開發(fā)具有明顯的個(gè)體化特征。 20世紀(jì)60年代中期70年代中期: 重要特征是出現(xiàn)了“軟件作坊”。但隨著計(jì)算機(jī)應(yīng)用軟件的不同擴(kuò)展,出現(xiàn)

9、了一些始料不及的問題: 第二章 軟件與軟件工程軟件工程 軟件工程 軟件危機(jī)的出現(xiàn) 花大量的時(shí)間和精力去修改程序中的錯(cuò)誤;花大量的時(shí)間和精力去修改程序,以滿足用戶不斷變化的新要求;花大量的時(shí)間和精力去修改程序,以滿足硬件不斷升級(jí)的新環(huán)境。結(jié)果: 第二章 軟件與軟件工程軟件開發(fā)成本急劇上升 軟件危機(jī)(Soft Ware Crisis) 質(zhì)量越來越得不到保證軟件工程 第二章 軟件與軟件工程軟件開發(fā)成本急劇上升 軟件第二章 軟件與軟件工程軟件工程 定義:是計(jì)算機(jī)軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題的集中體現(xiàn)。這些問題不僅局限于所開發(fā)的軟件不能正常工作,還包括如何開發(fā)軟件,如何維護(hù)現(xiàn)有軟件,以及如何

10、滿足不斷增長的軟件需求。 第二章 軟件與軟件工程軟件工程 第二章 軟件與軟件工程軟件工程從軟件危機(jī)到倡導(dǎo)軟件工程 為了擺脫軟件危機(jī)所造成的困境,北大西洋公約組織(NATO)的科學(xué)委員會(huì)于1968年聯(lián)邦德國召開的研討會(huì)上第一次提出了“軟件危機(jī)”,并且提出了解決“軟件危機(jī)”的“軟件工程”概念。 軟件危機(jī)的表現(xiàn): 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程從軟件危機(jī)到倡導(dǎo)軟件工程 軟件危機(jī)軟件規(guī)模擴(kuò)大軟件案件堆積軟件開發(fā)費(fèi)用增大軟件生產(chǎn)性低軟件技術(shù)者不足軟件質(zhì)量低下軟件工程(1968年NATO科學(xué)委員會(huì)主持的學(xué)術(shù)會(huì)議上提出)第二章 軟件與軟件工程軟件工程軟件危機(jī)軟件規(guī)模擴(kuò)大軟件案件

11、第二章 軟件與軟件工程軟件工程從軟件危機(jī)到倡導(dǎo)軟件工程 根據(jù)軟件危機(jī)產(chǎn)生的原因及表現(xiàn),人們提出必須科學(xué)地解決這些問題,提出了用“軟件工程”的概念,其主要思路是把人類長期以來從事各種工程項(xiàng)目所積累起來的行之有效的原理、概念、技術(shù)和方法,特別是人類從事計(jì)算機(jī)硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn),應(yīng)用到軟件的開發(fā)和維護(hù)中。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念 在NATO會(huì)議上給出的定義: 軟件工程是用來建立和使用合理的工程原則,以經(jīng)濟(jì)地獲得可靠的,且在真實(shí)機(jī)器上可以高效工作的軟件。IEEE標(biāo)準(zhǔn)術(shù)語給出的定義: 軟件工程是將系統(tǒng)的、規(guī)則的、可計(jì)量的方法應(yīng)用到軟件的開發(fā)、操作及

12、維護(hù)中。也就是說,將工程學(xué)應(yīng)用到軟件開發(fā)中。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念 后來,經(jīng)過一系列的發(fā)展和演變,對(duì)軟件工程給出了一個(gè)全面而科學(xué)的定義: 軟件工程是軟件開發(fā)、運(yùn)行、維護(hù)和引退的系統(tǒng)方法。軟件工程是為了經(jīng)濟(jì)地獲得能夠在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件而建立和使用的一系列完善的工程化原則。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念 包括兩方面內(nèi)容:軟件開發(fā)技術(shù)和軟件項(xiàng)目管理。軟件開發(fā)技術(shù):包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境。軟件開發(fā)項(xiàng)目管理:包括軟件度量、項(xiàng)目預(yù)算、進(jìn)度控制、人員組織、配置管理、項(xiàng)目計(jì)劃等。

13、 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念 軟件工程的三個(gè)要素是:方法 它為軟件開發(fā)提供了“如何做”的技術(shù)。如, 項(xiàng)目計(jì)劃 需求分析 結(jié)構(gòu)設(shè)計(jì) 過程設(shè)計(jì) 程序設(shè)計(jì) 軟件測試及維護(hù)等 工具 用什么做的技術(shù),計(jì)算機(jī)輔助軟件工程,CASE(Computer Aided Software Engineering) 過程 定義了方法使用的先后順序 文檔 質(zhì)量保證 里程碑 第二章 軟件與軟件工程軟件工程方法 它為第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容軟件開發(fā)業(yè)務(wù)系統(tǒng)需求說明確定設(shè) 計(jì)制 造檢 查維 護(hù)機(jī)械開發(fā)業(yè)務(wù)系統(tǒng)的需求說明很難確定收集、整理用戶模糊的要求,確

14、定系統(tǒng)化的范圍,策定新系統(tǒng)的構(gòu)想軟件開發(fā)步驟與機(jī)械開發(fā)步驟的比較第二章 軟件與軟件工程軟件工程軟件開發(fā)業(yè)務(wù)系統(tǒng)設(shè) 計(jì)制 第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容軟件開發(fā)業(yè)務(wù)系統(tǒng)需求說明確定設(shè) 計(jì)制 造檢 查維 護(hù)機(jī)械開發(fā)根據(jù)設(shè)計(jì)內(nèi)容而正確地采用設(shè)計(jì)技巧和方法與機(jī)械設(shè)計(jì)不同的是,確定的設(shè)計(jì)方法沒有,而是在綜合應(yīng)用各種各樣的設(shè)計(jì)文檔資料上下功夫,應(yīng)用已實(shí)踐過的設(shè)計(jì)經(jīng)驗(yàn)解決研究開發(fā)的要素,進(jìn)行零部件設(shè)計(jì),容易分業(yè)設(shè)計(jì)軟件開發(fā)步驟與機(jī)械開發(fā)步驟的比較第二章 軟件與軟件工程軟件工程軟件開發(fā)業(yè)務(wù)系統(tǒng)設(shè) 計(jì)制 第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容業(yè)務(wù)系統(tǒng)需求說明確定設(shè) 計(jì)制 造檢 查維

15、護(hù)機(jī)械開發(fā)制造是人性化最強(qiáng)的部分,這是軟件研究開發(fā)的特色已作成的作業(yè)內(nèi)容,其他人很難理解,各人的開發(fā)進(jìn)度也很難一致,個(gè)人的個(gè)性和技術(shù)的發(fā)揮很充分作業(yè)流程、作業(yè)內(nèi)容明確、機(jī)械化效率高軟件開發(fā)步驟與機(jī)械開發(fā)步驟的比較軟件開發(fā)第二章 軟件與軟件工程軟件工程業(yè)務(wù)系統(tǒng)設(shè) 計(jì)制 造檢 第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容業(yè)務(wù)系統(tǒng)需求說明確定設(shè) 計(jì)制 造檢 查維 護(hù)機(jī)械開發(fā)檢查已開發(fā)軟件的品質(zhì),很難完美錯(cuò)誤很多,檢查項(xiàng)目很多,每個(gè)開發(fā)項(xiàng)目檢查內(nèi)容都不同,要進(jìn)行完美的檢查很難容易確定性能檢查、外觀檢查等方面的檢查基準(zhǔn)軟件開發(fā)步驟與機(jī)械開發(fā)步驟的比較軟件開發(fā)第二章 軟件與軟件工程軟件工程業(yè)務(wù)系統(tǒng)設(shè)

16、計(jì)制 造檢 第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容業(yè)務(wù)系統(tǒng)需求說明確定設(shè) 計(jì)制 造檢 查維 護(hù)機(jī)械開發(fā)除了進(jìn)行故障維護(hù)、保持性能外,還要積極地追求功能而進(jìn)行必要的修正、擴(kuò)充隨著需求、應(yīng)用環(huán)境的變化,軟件的功能擴(kuò)充、變更等方面的維護(hù)量很大 盡可能維持該機(jī)械的性能軟件開發(fā)步驟與機(jī)械開發(fā)步驟的比較軟件開發(fā)第二章 軟件與軟件工程軟件工程業(yè)務(wù)系統(tǒng)設(shè) 計(jì)制 造檢 第二章 軟件與軟件工程軟件工程軟件工程的基本內(nèi)容 軟件工程學(xué)包括的內(nèi)容有理論、結(jié)構(gòu)、方法、環(huán)境、工具、技法、管理等。但主要因素有: 自頂向下模型 螺旋型 結(jié)構(gòu)化 面向?qū)ο箝_發(fā)模型等 結(jié)構(gòu)化方法 面向?qū)ο蠓椒?算法 開發(fā)語言 CASE工具

17、等 通用機(jī) 辦公用計(jì)算機(jī) 個(gè)人用計(jì)算機(jī) 網(wǎng)絡(luò) 綜合開發(fā)環(huán)境 OS操作系統(tǒng)等環(huán)境Environment技法Technigue軟件開發(fā)工程管理方法論Methodology第二章 軟件與軟件工程軟件工程 自頂向下模型 結(jié)構(gòu)化方第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程學(xué)方法論:軟件工程的方法是指軟件開發(fā)所采用的模型、結(jié)構(gòu),它是指導(dǎo)研制軟件的某種規(guī)范。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程學(xué)技法:技法是指在軟件開發(fā)、維護(hù)過程中所使用的程序系統(tǒng),它包括算法,所選用的開發(fā)語言,所選擇的開發(fā)工具,如CASE工具(Computer Aided Softwa

18、re Engineering,這是用于系統(tǒng)分析、設(shè)計(jì)、開發(fā)、測試等綜合支援開發(fā)工程的工具)。良好的軟件開發(fā)技法、開發(fā)工具,可提高軟件開發(fā)效率,使之半自動(dòng)化或者自動(dòng)化進(jìn)行開發(fā)。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程學(xué)環(huán)境:環(huán)境是基于軟件開發(fā)的支撐系統(tǒng),它包括硬件環(huán)境和軟件環(huán)境,環(huán)境的配置和選擇對(duì)提高開發(fā)效率有很大的影響。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程學(xué)工程管理:工程管理是實(shí)施從系統(tǒng)分析開始到系統(tǒng)計(jì)劃、系統(tǒng)設(shè)計(jì)、制造作業(yè)、測試作業(yè)為止的全過程而進(jìn)行的工程計(jì)劃和管理的行為,它包括制定開發(fā)計(jì)劃,確定開發(fā)配置

19、,進(jìn)行人員管理、質(zhì)量管理、成本核算管理、開發(fā)進(jìn)度管理等。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的基本目標(biāo) 組織實(shí)施軟件工程項(xiàng)目的最終目的是保證項(xiàng)目成功,是以較少投資獲得易維護(hù)、易理解、可靠、高效率的軟件產(chǎn)品,即達(dá)到如下幾個(gè)主要目標(biāo):第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的基本目標(biāo) 圓滿地實(shí)現(xiàn)客戶需求,達(dá)到預(yù)定的功能目標(biāo);軟件性能良好,面向客戶使用方便,操作簡便;軟件可靠性好,安全性好;可維護(hù)、可修改、可擴(kuò)充,且易于移植;在計(jì)劃開發(fā)費(fèi)用內(nèi),按期完成,交付使用。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的基本

20、目標(biāo) 在實(shí)際項(xiàng)目開發(fā)中,往往使上述目標(biāo)都達(dá)到理想的程度很困難的,而且目標(biāo)之間是有沖突、互斥的,因此我們實(shí)施軟件項(xiàng)目開發(fā)的過程就是在以上目標(biāo)沖突中取得一定程度平衡而最終使客戶得到滿意的過程。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程的基本原則分解 分解是人們分析解決復(fù)雜問題的重要手段和基本原則,其基本思想是從時(shí)間上或者從規(guī)模上將一個(gè)復(fù)雜抽象的問題分成若干個(gè)較小的、相對(duì)獨(dú)立的、容易求解的問題,然而再逐步分解。如結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)方法都運(yùn)用了分解的原則。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程的基本原則抽象和信息

21、隱蔽 盡可能將可靠因素隱藏在一個(gè)模塊內(nèi),保持模塊間低耦合,提高模塊獨(dú)立性,這是軟件設(shè)計(jì)中保持模塊獨(dú)立性要遵守的基本原則。也是在設(shè)計(jì)過程中所使用的抽象和信息隱蔽原則。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程的基本原則一致性 研究軟件工程方法的目的之一,就是使開發(fā)過程標(biāo)準(zhǔn)化、文件格式標(biāo)準(zhǔn)化、工程流程標(biāo)準(zhǔn)化、過程管理標(biāo)準(zhǔn)化,遵循開發(fā)規(guī)范、基準(zhǔn),這就是使整個(gè)開發(fā)過程、管理過程保持一致性。第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件工程軟件工程的概念軟件工程的基本原則確定性 用確定的形式表示需求,表達(dá)軟件的功能,在進(jìn)行軟件設(shè)計(jì)過程中,確定的開發(fā)計(jì)劃

22、、確定的開發(fā)周期、確定的質(zhì)量檢測標(biāo)準(zhǔn)等等,這些都是確保項(xiàng)目開發(fā)成功的確定性原則。 第二章 軟件與軟件工程軟件工程第二章 軟件與軟件工程軟件生命周期定義 有時(shí)也稱軟件生存周期。從開發(fā)系統(tǒng)的系統(tǒng)計(jì)劃開始到軟件的運(yùn)行、維護(hù)為止的全過程,包括需求分析、軟件設(shè)計(jì)、程序設(shè)計(jì)、程序制造、軟件測試及運(yùn)行維護(hù)六個(gè)階段。 第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件生命周期定義 需求分析外部設(shè)計(jì)內(nèi)部設(shè)計(jì)程序設(shè)計(jì)編制測 試運(yùn)行維護(hù)計(jì)劃(整體構(gòu)想)開 發(fā)運(yùn)行、維護(hù)第二章 軟件與軟件工程軟件生命周期需求分析外部設(shè)計(jì)內(nèi)部設(shè)計(jì)第二章 軟件與軟件工程軟件生命周期定義 它從時(shí)間的角度對(duì)整個(gè)過程進(jìn)行分解,使各階段

23、的任務(wù)相對(duì)勻稱,前一階段的任務(wù)完成是下一階段的前提和基礎(chǔ),每一階段結(jié)束之前,必須進(jìn)行嚴(yán)格的技術(shù)評(píng)審,通過之后才算這一階段結(jié)束,從而使軟件開發(fā)的整個(gè)過程有效地進(jìn)行下去。第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件生命周期各階段的任務(wù)需求分析對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行需求調(diào)查對(duì)開發(fā)項(xiàng)目進(jìn)行構(gòu)想和計(jì)劃,策定新系統(tǒng)給出開發(fā)系統(tǒng)的詳細(xì)定義,確定開發(fā)目標(biāo)制定開發(fā)計(jì)劃 第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件生命周期各階段的任務(wù)軟件設(shè)計(jì)外部設(shè)計(jì)和內(nèi)部設(shè)計(jì)外部設(shè)計(jì)屏幕顯示設(shè)計(jì)、外部接口設(shè)計(jì)內(nèi)部設(shè)計(jì)性能設(shè)計(jì)、可靠性設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、處理邏輯設(shè)計(jì) 第二章 軟件與軟件工程軟件生命周期第二章

24、軟件與軟件工程軟件生命周期各階段的任務(wù)程序設(shè)計(jì)、編制程序設(shè)計(jì)設(shè)計(jì)各個(gè)模塊的處理內(nèi)容和算法程序編制用計(jì)算機(jī)高級(jí)語言,按照一定的編碼規(guī)范,編寫程序代碼(包括系統(tǒng)測試) 第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件生命周期各階段的任務(wù)軟件測試檢查軟件質(zhì)量組合測試、綜合測試、實(shí)機(jī)用戶測試 第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件生命周期各階段的任務(wù)運(yùn)行維護(hù)修改、擴(kuò)充功能修正發(fā)現(xiàn)的錯(cuò)誤針對(duì)環(huán)境變化作適當(dāng)變更第二章 軟件與軟件工程軟件生命周期第二章 軟件與軟件工程軟件開發(fā)與軟件開發(fā)方法 定義:就是把軟件系統(tǒng)使用者(客戶)的需求翻譯成計(jì)算機(jī)可執(zhí)行的程序。 人員:客戶、系統(tǒng)

25、(軟件)工程師(SE)、程序員 成果:軟件和文檔 文檔也是軟件開發(fā)的重要構(gòu)成部分,各階段的文檔如下第二章 軟件與軟件工程軟件開發(fā)與軟件開發(fā)方法第二章 軟件與軟件工程要求產(chǎn)生的文檔驗(yàn)收記錄系統(tǒng)測試記錄組合測試記錄單元(模塊)測試記錄顧客系統(tǒng)工程師系統(tǒng)工程師程序員軟件需求分析階段軟件系統(tǒng)設(shè)計(jì)階段軟件模塊設(shè)計(jì)階段程序編制階段要求產(chǎn)生的文檔需求定義書系統(tǒng)設(shè)計(jì)書程序設(shè)計(jì)書程序源代碼顧 客系統(tǒng)工程師系統(tǒng)工程師程序員第二章 軟件與軟件工程要求產(chǎn)生的文檔驗(yàn)收記錄系統(tǒng)測試記錄組第二章 軟件與軟件工程軟件開發(fā)與軟件開發(fā)方法 為了使軟件開發(fā)走上工程化的軌道,必須尋找一些標(biāo)準(zhǔn)的規(guī)程,來指導(dǎo)和約束軟件開發(fā),從而提出了軟

26、件開發(fā)方法。 目前常用的方法是結(jié)構(gòu)化方法和面向?qū)ο蟮姆椒ā?發(fā)展方向:面向構(gòu)件的方法。 第二章 軟件與軟件工程軟件開發(fā)與軟件開發(fā)方法第二章 軟件與軟件工程 結(jié)構(gòu)化方法:面向數(shù)據(jù)流的方法,其基本思想可以概括為自頂向下、逐步求精。 結(jié)構(gòu)化編程方法(Structure Programming,SP) 結(jié)構(gòu)化設(shè)計(jì)方法(Structure Design,SD) 結(jié)構(gòu)化分析方法(Structure Analysis,SA)缺陷:過程與數(shù)據(jù)是相互獨(dú)立的實(shí)體 1、軟件可復(fù)用性差 2、難于適應(yīng)需求發(fā)生變化的問題 第二章 軟件與軟件工程第二章 軟件與軟件工程 面向?qū)ο蠓椒ǎ罕M可能模擬人類習(xí)慣的思維方式來分析和解決

27、問題。 面向?qū)ο蟮木幋a:Object-Oriented Programming,OOP 面向?qū)ο蟮姆治觯篛bject-Oriented Analysis,OOA 面向?qū)ο蟮脑O(shè)計(jì):Object-Oriented Design,OOD優(yōu)點(diǎn):穩(wěn)定性,可重用性,良好的維護(hù)性第二章 軟件與軟件工程 面向?qū)ο蠓椒ǖ诙?軟件與軟件工程軟件工程工具和環(huán)境 “工欲善其事,必先利其器”。軟件工程工具和環(huán)境對(duì)整個(gè)軟件開發(fā)過程及軟件開發(fā)過程中采用的軟件工程方法和技術(shù)提供自動(dòng)或半自動(dòng)的支持,對(duì)提高軟件生產(chǎn)效率和產(chǎn)品質(zhì)量具有重要作用。近20年來,許多實(shí)用的軟件工程工具和環(huán)境不斷涌現(xiàn),極大提促進(jìn)了軟件產(chǎn)業(yè)的發(fā)展。第二章

28、軟件與軟件工程軟件工程工具和環(huán)境 第二章 軟件與軟件工程軟件工程工具和環(huán)境 軟件工具 軟件工具是指為支持計(jì)算機(jī)軟件的開發(fā)、維護(hù)及相關(guān)工作而研制的程序系統(tǒng)。使用軟件工具的目的是降低軟件開發(fā)和維護(hù)的成本,提高軟件產(chǎn)品的生產(chǎn)效率和質(zhì)量。軟件工具種類繁多,涉及面廣泛,主要有以下幾類。 第二章 軟件與軟件工程軟件工程工具和環(huán)境 第二章 軟件與軟件工程軟件開發(fā)工具 軟件開發(fā)工具用于軟件開發(fā)過程的各種開發(fā)活動(dòng),主要有:需求分析工具用以輔助系統(tǒng)分析員生成完整、正確、一致的需求說明,改善軟件開發(fā)人員間的通信狀況,減少管理和維護(hù)費(fèi)用;設(shè)計(jì)工具用來進(jìn)行系統(tǒng)設(shè)計(jì),形成設(shè)計(jì)規(guī)格說明,檢查并排除規(guī)格說明中的錯(cuò)誤;第二章

29、軟件與軟件工程軟件開發(fā)工具第二章 軟件與軟件工程軟件開發(fā)工具編碼工具為程序設(shè)計(jì)人員提供各種方便的編程環(huán)境,包括編輯、編譯、調(diào)試和運(yùn)行等;測試工具支持整個(gè)測試流程,包括選擇測試用例、生成測試軟件、執(zhí)行測試評(píng)價(jià)測試結(jié)果等。 第二章 軟件與軟件工程軟件開發(fā)工具第二章 軟件與軟件工程軟件維護(hù)工具 軟件維護(hù)工具輔助維護(hù)人員對(duì)代碼及有關(guān)文檔進(jìn)行各種維護(hù)活動(dòng),主要有:版本控制工具用來存儲(chǔ)、更新、恢復(fù)和管理一個(gè)軟件的多個(gè)版本;文檔分析工具用以對(duì)軟件開發(fā)過程中形成的文檔資料進(jìn)行分析,給出軟件維護(hù)活動(dòng)所需的維護(hù)信息;第二章 軟件與軟件工程軟件維護(hù)工具 第二章 軟件與軟件工程軟件維護(hù)工具 逆向工程工具輔助軟件人員將

30、某種形式表示的軟件轉(zhuǎn)換成更高抽象形式表示的軟件;再工程工具支持軟件重構(gòu),提高軟件功能、性能以及可維護(hù)性。 第二章 軟件與軟件工程軟件維護(hù)工具 第二章 軟件與軟件工程軟件管理和支持工具 軟件管理和支持工具輔助軟件項(xiàng)目管理人員和支持人員的各種管理和支持活動(dòng),主要有:項(xiàng)目管理工具輔助管理人員進(jìn)行項(xiàng)目的計(jì)劃、成本估算、資源分配、質(zhì)量控制等管理活動(dòng);開發(fā)信息庫工具維護(hù)軟件項(xiàng)目的各種開發(fā)信息;第二章 軟件與軟件工程軟件管理和支持工具 第二章 軟件與軟件工程軟件管理和支持工具 配置管理工具完成軟件配置的標(biāo)識(shí)、版本控制、變化控制等基本任務(wù);軟件評(píng)價(jià)工具輔助管理人員進(jìn)行質(zhì)量保證的有關(guān)活動(dòng)。 第二章 軟件與軟件工

31、程軟件管理和支持工具 第二章 軟件與軟件工程軟件管理和支持工具現(xiàn)在已經(jīng)有很多這些方面的工具,例如: SADT Softtech公司(D.T.Ross)于1977年開發(fā)的結(jié)構(gòu)化分析和設(shè)計(jì)工具; PSA(問題分析器) 美國密執(zhí)安大學(xué)(Michigan)開發(fā)的系統(tǒng)分析輔助工(1977);可視化集成開發(fā)環(huán)境 如Microsoft Test for Wingdows是一個(gè)集成化的測試系統(tǒng); SCCS UNIX的源代碼控制系統(tǒng)是一個(gè)典型的版本控制工具。第二章 軟件與軟件工程軟件管理和支持工具第二章 軟件與軟件工程CASE集成環(huán)境 將軟件工具集成在一起,使得一個(gè)工具產(chǎn)生的信息能夠被其他工具所用,這樣的工具集

32、稱為計(jì)算機(jī)輔助軟件工程(Computer Aided Software Engineering,簡稱為CASE)。CASE的集成機(jī)制主要有:第二章 軟件與軟件工程CASE集成環(huán)境 第二章 軟件與軟件工程數(shù)據(jù)集成工具間可以交換數(shù)據(jù);界面集成工具有相同的界面風(fēng) 格和交互方式;控制集成工具激活后能控制其 他工具的操作;第二章 軟件與軟件工程第二章 軟件與軟件工程過程集成系統(tǒng)嵌入了有關(guān)軟件工程 知識(shí),根據(jù)軟件過程模型 輔助用戶啟動(dòng)各種軟件開 發(fā)活動(dòng);平臺(tái)集成工具運(yùn)行在相同的硬件/操 作系統(tǒng)下。 第二章 軟件與軟件工程第二章 軟件與軟件工程CASE集成環(huán)境從20世紀(jì)80年代開始,CASE技術(shù)發(fā)展經(jīng)歷了四

33、個(gè)時(shí)期。第一個(gè)時(shí)期: 20世紀(jì)80年代初期。這一時(shí)期對(duì)軟件自動(dòng)化工具的特點(diǎn)而言,可稱其為“孤立型”,即各種工具大多是孤立存在,彼此沒有信息交換,且以分析、設(shè)計(jì)階段的輔助工具為主,例如文檔自動(dòng)生成器、圖表自動(dòng)生成器等。第二章 軟件與軟件工程第二章 軟件與軟件工程第二個(gè)時(shí)期: 20世紀(jì)80年代中期。這一時(shí)期最重大的成果是系統(tǒng)信息中心庫(Repository)概念的引入,這使得彼此孤立的工具開始有了信息交換環(huán)境的支持,推動(dòng)了從分析到設(shè)計(jì)的軟件工程上游階段開發(fā)工具的一體化,即CASE上游工具的集成。人們將這一特征的CASE稱為“擴(kuò)充型”的CASE。 第二章 軟件與軟件工程第二章 軟件與軟件工程第三個(gè)時(shí)

34、期:20世紀(jì)80年代后期。這一時(shí)期有代表性的是把應(yīng)用程序開發(fā)、維護(hù)自動(dòng)化與項(xiàng)目管理工具結(jié)合起來,重視標(biāo)準(zhǔn)化的“接口型”的工具集成環(huán)境。第二章 軟件與軟件工程第二章 軟件與軟件工程第四個(gè)時(shí)期: 20世紀(jì)90年代初期開始至今。這一時(shí)期明確了CASE大最終目標(biāo)是“統(tǒng)一使用開發(fā)支持工具,實(shí)現(xiàn)軟件開發(fā)全過程度自動(dòng)化”,開始了逼近終點(diǎn)的全面挑戰(zhàn)。例如,在解決軟件工程各階段間信息交換和信息一致性問題上引入了“百科全書”(Encyclopedia),在使結(jié)構(gòu)化方法可視化上使用圖形工具,在使軟件工程開發(fā)方法學(xué)與CASE工具統(tǒng)一化上使用了人工智能(AI)技術(shù)等等。總之,20世紀(jì)90年代以后軟件工程與CASE大基本

35、動(dòng)向就是二者的統(tǒng)一,即方法學(xué)和自動(dòng)化工具的統(tǒng)一,故稱為“統(tǒng)一型”。 第二章 軟件與軟件工程第四個(gè)時(shí)期:第二章 軟件與軟件工程CASE集成環(huán)境 20世紀(jì)90年代初,歐洲計(jì)算機(jī)制造商聯(lián)合會(huì)(European Computer Manufacturers Association,ECMA)提出了軟件開發(fā)環(huán)境的參考模型:ECMA參考模型第二章 軟件與軟件工程CASE集成環(huán)境ECMA參考模型第二章 軟件與軟件工程軟件工程工具和環(huán)境CASE集成環(huán)境ECMA參考模型該模型建議,一個(gè)軟件開發(fā)環(huán)境應(yīng)該提供五類核心服務(wù):數(shù)據(jù)存儲(chǔ)服務(wù)用于命名和管理實(shí)體,建立它們間的聯(lián)系,通常由對(duì)象管理系統(tǒng)實(shí)現(xiàn);數(shù)據(jù)集成服務(wù)擴(kuò)展了數(shù)

36、據(jù)存儲(chǔ)服務(wù),包括版本管理、配置管理、查詢服務(wù)、狀態(tài)控制、數(shù)據(jù)交換等服務(wù),以適用于軟件開發(fā);第二章 軟件與軟件工程軟件工程工具和環(huán)境第二章 軟件與軟件工程軟件工程工具和環(huán)境CASE集成環(huán)境ECMA參考模型任務(wù)管理服務(wù)完成任務(wù)定義、任務(wù)執(zhí)行、事務(wù)恢復(fù)、事件監(jiān)視、角色管理以及任務(wù)歷史信息管理等工作;消息服務(wù)提供軟件工具與軟件環(huán)境間的通信服務(wù),包括消息傳遞、工具注冊;用戶界面服務(wù)支持用戶界面的集成。 第二章 軟件與軟件工程軟件工程工具和環(huán)境第二章 軟件與軟件工程軟件工程工具和環(huán)境CASE集成環(huán)境ECMA參考模型 我國北京大學(xué)自主開發(fā)的青鳥系統(tǒng),就采用了ECMA參考模型,允許多個(gè)工具利用環(huán)境提供的服務(wù)實(shí)

37、現(xiàn)數(shù)據(jù)集成/界面集成/控制集成。 CASE技術(shù)的發(fā)展有待于軟件工程方法學(xué)的發(fā)展,同時(shí)CASE技術(shù)的發(fā)展又促進(jìn)著軟件工程方法學(xué)的進(jìn)一步發(fā)展。今后的軟件工程應(yīng)該是“方法學(xué)+CASE技術(shù)”。而且,隨著CASE技術(shù)在軟件工程中的作用不斷擴(kuò)大和深化,在今后的軟件工程領(lǐng)域,CASE技術(shù)將很有可能占據(jù)主導(dǎo)地位。 第二章 軟件與軟件工程軟件工程工具和環(huán)境第二章 軟件與軟件工程軟件開發(fā)項(xiàng)目管理對(duì)象:軟件工程項(xiàng)目內(nèi)容:質(zhì)量管理、進(jìn)度管理、人員管理、成本管理、資源管理、標(biāo)準(zhǔn)化管理主要職能:制定開發(fā)計(jì)劃、建立開發(fā)體制、確定開發(fā)流程和開發(fā)基準(zhǔn)、指導(dǎo)開發(fā)作業(yè)、檢查驗(yàn)收成果物。 第二章 軟件與軟件工程軟件開發(fā)項(xiàng)目管理第二章

38、 軟件與軟件工程 軟件項(xiàng)目規(guī)模越大越復(fù)雜,其涉及的技術(shù)種類、人員、部門也越多,軟件項(xiàng)目管理的難度也就越大。項(xiàng)目管理進(jìn)度管理質(zhì)量管理人員管理成本、資源管理標(biāo)準(zhǔn)化管理會(huì) 議報(bào) 告把握進(jìn)度狀況開發(fā)前開發(fā)中開發(fā)后把握進(jìn)度狀況開發(fā)人員選拔培訓(xùn)教育考 核把握人員狀況(技術(shù)、思想、交流)工數(shù)管理設(shè)備、資料管理把握成本開發(fā)流程開發(fā)基準(zhǔn)環(huán)境、配置及版本管理規(guī)范作業(yè)第二章 軟件與軟件工程進(jìn)度管理質(zhì)量管理人員管理成本、資源管第二章 軟件與軟件工程我國軟件產(chǎn)業(yè)的現(xiàn)狀 黨的十六大提出:堅(jiān)持以信息化帶動(dòng)工業(yè)化,以 工業(yè)化促進(jìn)信息化。 國家制定了發(fā)展信息產(chǎn)業(yè)的方針:以信息化帶動(dòng)工業(yè)化,實(shí)現(xiàn)跨越式發(fā)展的政策: 2000:國發(fā)

39、200018號(hào)文件,簡稱18號(hào)文 關(guān)于鼓勵(lì)軟件和集成電路產(chǎn)業(yè)發(fā)展的若干政策 2002:國辦發(fā)200247號(hào)文件 振興軟件產(chǎn)業(yè)行動(dòng)綱要 至目前,我國軟件產(chǎn)業(yè)的政策環(huán)境成為歷史上前所未有的最好時(shí)期。 第二章 軟件與軟件工程我國軟件產(chǎn)業(yè)的現(xiàn)狀 黨的十六大提第二章 軟件與軟件工程軟件產(chǎn)業(yè) 按照國際慣例,軟件產(chǎn)業(yè)(或軟件市場)包括軟件產(chǎn)品和軟件服務(wù)兩大部分。根據(jù)這個(gè)定義,軟件產(chǎn)業(yè)是直接從事計(jì)算機(jī)軟件產(chǎn)品制造或軟件服務(wù)活動(dòng)的企業(yè)(以下簡稱軟件企業(yè))的集合。計(jì)算機(jī)軟件產(chǎn)品是能被計(jì)算機(jī)存儲(chǔ)和讀入并指示計(jì)算機(jī)從事特定工作的編碼程序,主要包括系統(tǒng)軟件、支撐軟件和應(yīng)用軟件等類;計(jì)算機(jī)軟件服務(wù)是指與計(jì)算機(jī)軟件相關(guān)的服

40、務(wù)內(nèi)容,主要包括信息系統(tǒng)集成、ASP、信息系統(tǒng)運(yùn)行與維護(hù)服務(wù)、數(shù)據(jù)中心與資源外包服務(wù)、數(shù)據(jù)加工與處理服務(wù)、信息系統(tǒng)咨詢與評(píng)估服務(wù)、信息系統(tǒng)項(xiàng)目監(jiān)理、軟件與信息系統(tǒng)管理人才工程化培訓(xùn)等。軟件產(chǎn)業(yè)較發(fā)達(dá)的國家:美國、印度、愛爾蘭第二章 軟件與軟件工程第二章 軟件與軟件工程軟件企業(yè)不斷發(fā)展對(duì)全國4700家軟件企業(yè)調(diào)查顯示 銷售收入 企業(yè)員工 規(guī)模 總數(shù) 50億元以上 2 10億元以上 19 5億元以上 35 1億元以上 214 1000萬元以上 1100 其他 3330 規(guī)模 總數(shù) 1000人以上 25500人以上 45 200人以上 170 其他 3460 第二章 軟件與軟件工程規(guī)模 總數(shù) 50億元以上 2 10億第二章 軟件與軟件工程軟件人才需求情況分析 到2000年底,信息產(chǎn)業(yè)已占GDP的4%,已經(jīng)成為國民經(jīng)濟(jì) 第一大支柱產(chǎn)業(yè),國家制定了發(fā)展信息產(chǎn)業(yè)的方針:以信息化帶動(dòng)工業(yè)化,實(shí)現(xiàn)跨式發(fā)展 信息產(chǎn)業(yè)的可持續(xù)發(fā)展遇到人才瓶頸 IT產(chǎn)業(yè)高速發(fā)展使IT人才緊缺成為一個(gè)全球性問題日本:最為緊缺的是IT人才 韓國:2005年IT人才缺口10萬人 上海、北京、廣東、山東、江蘇等已將IT人才 列為“緊缺人才” 中國:目前IT人才需求60萬,缺口40萬, IT人才隊(duì)伍結(jié)構(gòu)失衡:“兩頭”更加短缺。缺乏IT高級(jí)人才更缺乏“IT藍(lán)領(lǐng)” 第二

溫馨提示

  • 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)論