




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程與項目管理學時:40學時 第1頁,共77頁。第1章 軟件工程概述掌握:軟件危機、軟件工程、軟件生命周期、軟件開發(fā)方法、軟件開發(fā)模型、軟件工具及支撐環(huán)境的相關(guān)概念。第2頁,共77頁。1.1 軟件危機第3頁,共77頁。1.1.1 軟件第4頁,共77頁。1.軟件的定義 軟件是計算機系統(tǒng)中與硬件相互依存的一部分,它是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是指按事先設(shè)計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是指使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是指與程序開發(fā)、維護和使用有關(guān)的圖文資料。第5頁,共77頁。2.軟件的分類1)按軟件功能系統(tǒng)軟件支撐軟件應(yīng)用軟件第6頁,共77頁。2)按軟件規(guī)模微
2、型軟件小型軟件中型軟件大型軟件甚大型軟件極大型軟件第7頁,共77頁。3. 軟件的特點軟件是一種邏輯實體,而不是物理實體。軟件的生產(chǎn)過程是開發(fā),而不是制造。軟件不存在磨損、老化現(xiàn)象。軟件的開發(fā)和運行常常受到計算機系統(tǒng)的限制。軟件是復(fù)雜的。第8頁,共77頁。年 份軟 件指 令 條 數(shù)1963水星計劃系統(tǒng)200萬條1967雙子星座計劃系統(tǒng)400萬條1973阿波羅計劃系統(tǒng)1000萬條1979哥倫比亞航天飛機系統(tǒng)4000萬條美國宇航局的軟件系統(tǒng)一覽表第9頁,共77頁。圖1-1 計算機系統(tǒng)中軟硬件成本所占比例的變化第10頁,共77頁。1.1.2 軟件生產(chǎn)的發(fā)展第11頁,共77頁。程序設(shè)計時期(約為20世紀
3、5060年代)程序系統(tǒng)時期(約為20世紀6070年代)軟件工程時期(20世紀70年代以后)第12頁,共77頁。 時 期特 點程 序 設(shè) 計程 序 系 統(tǒng)軟 件 工 程軟件的含義程序程序及規(guī)格說明書程序、文檔、數(shù)據(jù)主要程序設(shè)計語言匯編語言、機器語言高級語言 高級語言、各種開發(fā)工具軟件使用者程序員本人少數(shù)用戶市場用戶軟件規(guī)模小型中型大型開發(fā)軟件需要的人力個人開發(fā)小組開發(fā)小組及大中型軟件開發(fā)機構(gòu)軟件開發(fā)涉及的工作編碼設(shè)計、編碼、測試軟件生命周期的各個階段第13頁,共77頁。1.1.3 軟件開發(fā)面臨的主要問題第14頁,共77頁。 西方計算機科學家在20世紀6070年代總結(jié)了軟件開發(fā)和維護過程中遇到的一
4、系列嚴重問題,表現(xiàn)為以下幾方面:對軟件開發(fā)成本和進度的估計常常不準確,開發(fā)成本超出預(yù)算,實際進度相比預(yù)定計劃一再拖延。用戶對“已完成”系統(tǒng)不滿意的現(xiàn)象時有發(fā)生。軟件質(zhì)量常常不可靠,“缺陷”和“補丁”不斷。軟件的可維護程度非常低。軟件通常沒有相應(yīng)的文檔資料。軟件成本不斷提高。軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和人們需求的增長。第15頁,共77頁。1.1.4 軟件危機的提出第16頁,共77頁。1968年,北大西洋公約組織的計算機科學家在聯(lián)邦德國召開國際會議,第一次討論了“軟件危機”問題?!败浖C”是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題,這類問題不僅僅是“不能正常運行的軟件”才
5、具有的,實際上幾乎所有軟件都不同程度地存在這類問題。概括來說,軟件危機包含兩方面的問題:一是如何開發(fā)軟件,以滿足不斷增長、日趨復(fù)雜的需求;二是如何維護規(guī)模不斷膨脹的軟件產(chǎn)品。這次會議同時提出了解決“軟件危機”的途徑,即采用工程化的思想來管理軟件開發(fā)的過程,并正式提出“軟件工程”一詞,從此一門新興的工程學科軟件工程應(yīng)運而生。第17頁,共77頁。1.2 軟件工程第18頁,共77頁。1.2.1 軟件工程的定義第19頁,共77頁。軟件工程是導軟件開發(fā)和維護的一門工程學科。它采用工程的概念、原理、技術(shù)和方法,把經(jīng)過時間檢驗而證明是正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來,用于開發(fā)和維護軟件。
6、軟件工程是一門綜合性的交叉學科,它涉及哲學、計算機科學、工程科學、管理科學、數(shù)學及應(yīng)用領(lǐng)域知識。第20頁,共77頁。2.軟件的分類1)按軟件功能系統(tǒng)軟件支撐軟件應(yīng)用軟件第21頁,共77頁。1.2.2 軟件工程的內(nèi)容和目標第22頁,共77頁。軟件工程的三個要素軟件工程方法軟件工具軟件工程的過程第23頁,共77頁。軟件工程的目標付出較低的開發(fā)成本達到要求的軟件功能取得較好的軟件性能開發(fā)的軟件易于移植需要較低的維護費用能按時完成開發(fā)工作,及時交付使用第24頁,共77頁。1.2.3 軟件工程的作用第25頁,共77頁。(1)從軟件企業(yè)的專業(yè)人才來講,其作用體現(xiàn)在以下幾個方面:高層管理人員利用軟件工程的理
7、論和方法來管理整個公司。中層項目經(jīng)理和軟件工程師:利用軟件工程的理論和方法,來管理項目組的軟件開發(fā)。軟件藍領(lǐng)工人利用軟件工程的理論和方法來實現(xiàn)軟件的開發(fā)。軟件營銷人員利用軟件工程的理論和方法與客戶進行溝通,以贏得客戶的信任。軟件實施和維護人員:利用軟件工程的理論和方法,來實現(xiàn)軟件的功能、性能與接口的實施和維護。軟件售前人員利用軟件工程的理論和方法,來提高投標成功的把握。第26頁,共77頁。(2)從軟件項目管理來講,其作用體現(xiàn)在:在規(guī)定的時間內(nèi)按照規(guī)定的成本實現(xiàn)符合預(yù)期的質(zhì)量目標(軟件的功能、性能和接口達到需求說明書的要求)的軟件。(3)從軟件企業(yè)本身來講,其作用體現(xiàn)在:持續(xù)地規(guī)范軟件開發(fā)過程和
8、軟件管理過程,不斷地優(yōu)化軟件組織的個人素質(zhì)和集體素質(zhì),從而逐漸增強軟件企業(yè)的市場競爭實力。(4)從軟件企業(yè)發(fā)展進程來講,其作用體現(xiàn)在:克服軟件危機,控制軟件開發(fā)進度,節(jié)約開發(fā)成本,提高軟件質(zhì)量。第27頁,共77頁。2.軟件的分類1)按軟件功能系統(tǒng)軟件支撐軟件應(yīng)用軟件第28頁,共77頁。1.2.4 軟件工程的基本原則第29頁,共77頁。用分階段的生存周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計技術(shù)結(jié)果應(yīng)能清楚地審查開發(fā)小組的人員應(yīng)該少而精承認不斷改進軟件工程實踐的必要性第30頁,共77頁。1.3 軟件生命周期第31頁,共77頁。1.3.1 軟件生命周期的定義第32頁,共77
9、頁??尚行苑治鲂枨蠓治龈乓O(shè)計詳細設(shè)計編碼測試維護第33頁,共77頁??尚行苑治?在項目進入具體開發(fā)之前,首先需要進行的步驟是可行性分析。這一步驟必須回答的問題是“將要開發(fā)的軟件系統(tǒng)是做什么的?在經(jīng)濟上、技術(shù)上和操作上是否可行?”,具體來說,需要考慮的問題有:該軟件項目的性質(zhì)是什么、它是數(shù)據(jù)處理問題還是實時控制問題、它是科學計算問題還是人工智能問題等,以及該問題是否有行得通的解決辦法,若有解決問題的辦法,則需要多少費用、多少資源(包括硬件、軟件和人員)、多少時間。第34頁,共77頁。需求分析 這一階段主要要解決的是系統(tǒng)“做什么”的問題。用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整
10、地、準確地表達出來,也不知道怎樣用計算機解決他們的問題。而軟件開發(fā)人員雖然知道怎樣用軟件完成人們提出的各種功能要求,但是,對用戶的具體業(yè)務(wù)和需求不完全清楚,這是需求分析階段的困難所在。第35頁,共77頁。概要設(shè)計 這一階段主要解決的是系統(tǒng)“怎么做”的問題。具體來說,開發(fā)人員要把確定的各項功能需求轉(zhuǎn)換成相應(yīng)的軟件體系結(jié)構(gòu),在該結(jié)構(gòu)中,每個成分都是意義明確的模塊,即每個模塊都和某些功能需求相對應(yīng)。因此,概要設(shè)計的核心內(nèi)容就是設(shè)計軟件的結(jié)構(gòu),弄清該結(jié)構(gòu)由哪些模塊構(gòu)成,每個模塊的功能是什么,這些模塊之間的層次結(jié)構(gòu)是怎樣的。同時,還要設(shè)計該應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫結(jié)構(gòu),即應(yīng)用系統(tǒng)要存儲什么數(shù)據(jù),這
11、些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系等。第36頁,共77頁。可行性分析 在項目進入具體開發(fā)之前,首先需要進行的步驟是可行性分析。這一步驟必須回答的問題是“將要開發(fā)的軟件系統(tǒng)是做什么的?在經(jīng)濟上、技術(shù)上和操作上是否可行?”,具體來說,需要考慮的問題有:該軟件項目的性質(zhì)是什么、它是數(shù)據(jù)處理問題還是實時控制問題、它是科學計算問題還是人工智能問題等,以及該問題是否有行得通的解決辦法,若有解決問題的辦法,則需要多少費用、多少資源(包括硬件、軟件和人員)、多少時間。第37頁,共77頁。詳細設(shè)計 詳細設(shè)計階段就是對每個模塊要完成的功能具體描述為精確的、結(jié)構(gòu)化的過程描述,即該模塊的控制結(jié)構(gòu)是怎樣的,先做什
12、么,后做什么,有什么樣的條件判定,有哪些重復(fù)處理等,然后用相應(yīng)的工具把這些控制結(jié)構(gòu)表示出來。第38頁,共77頁。編碼 編碼階段就是把每個模塊的控制結(jié)構(gòu)轉(zhuǎn)換成計算機可接受的程序代碼,即用種某特定程序設(shè)計語言編寫的“源程序清單”。編寫出的程序應(yīng)該結(jié)構(gòu)好、清晰易讀,并與設(shè)計一致。第39頁,共77頁。測試 軟件測試階段的主要任務(wù)是發(fā)現(xiàn)和排除錯誤,也就是對軟件系統(tǒng)進行從上到下的全面的測試和檢驗,看它是否符合軟件總體設(shè)計方案規(guī)定的功能和要求。測試分為模塊測試、集成測試、確認測試。模塊測試是查找各模塊在功能和結(jié)構(gòu)上存在的問題。集成測試是將各模塊按一定順序組裝起來進行的測試,主要是查找各模塊之間的接口問題。確
13、認測試是按需求說明書對軟件的功能逐項進行測試,以確定軟件功能是否符合用戶的需求,開發(fā)的軟件是否合格,能否交付用戶使用。第40頁,共77頁。維護 軟件維護是軟件生存周期中時間最長的階段。己交付的軟件正式投入使用后便進入了軟件維護階段,它可以持續(xù)幾年甚至幾十年。在軟件運行過程中,可能由于各方面的原因需要對其進行修改,如運行中發(fā)現(xiàn)了軟件隱含的錯誤而需要修改,為了適應(yīng)變化了的軟件運行環(huán)境而需要做適當?shù)刈兏?,也可能是因為用戶業(yè)務(wù)發(fā)生變化而需要擴充和增強軟件的功能等。第41頁,共77頁。第42頁,共77頁。1.4 軟件開發(fā)方法第43頁,共77頁。1.4.1 結(jié)構(gòu)化開發(fā)方法第44頁,共77頁。1978年,E
14、.Yourdon和L.L.Constan-tine提出SASD(Structured Analysis and Structured Design)方法,也可稱為面向功能的軟件開發(fā)方法,或面向數(shù)據(jù)流的軟件開發(fā)方法結(jié)構(gòu)化開發(fā)方法的指導思想是自頂向下、逐步求精,基本原則是功能分解與抽象,它由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化程序設(shè)計構(gòu)成第45頁,共77頁。1.4.2 面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法第46頁,共77頁。以數(shù)據(jù)結(jié)構(gòu)為驅(qū)動的以1975年M.A.Jackson提出的Jackson方法和1974年J.D.Warnier提出的Warnier方法最有代表性主要思想是:一個問題的數(shù)據(jù)結(jié)構(gòu)與處理該問題數(shù)據(jù)結(jié)構(gòu)的
15、控制結(jié)構(gòu)有著驚人的相似之處,根據(jù)這一思想,從目標系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)入手,導出程序框架結(jié)構(gòu),再補充其他細節(jié),就可以得到完整的程序結(jié)構(gòu)圖對輸入、輸出數(shù)據(jù)結(jié)構(gòu)明確的中小型系統(tǒng)特別有效第47頁,共77頁。1.4.3 面向?qū)ο蟮拈_發(fā)方法第48頁,共77頁。面向?qū)ο箝_發(fā)方法的基本出發(fā)點是盡可能按照人類認識世界的方法和思維方式來分析和解決問題??陀^世界是由許多具體的事物、事件、概念和規(guī)則組成的,這些均可看成對象面向?qū)ο驩O(Object-Oriented)技術(shù)在需求分析、可維護性和可靠性這3個軟件開發(fā)的關(guān)鍵環(huán)節(jié)和質(zhì)量指標上有了實質(zhì)性的突破 ,徹底解決了在這些方面存在的問題第49頁,共77頁。1.5 軟
16、件開發(fā)模型第50頁,共77頁。1.5.1 瀑布模型第51頁,共77頁。 瀑布模型是由溫斯頓羅伊斯(Winston Royce)在1970年提出的,其核心思想是按工序?qū)栴}簡化,將功能的實現(xiàn)與設(shè)計分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。瀑布模型將軟件生命周期劃分為軟件計劃、需求分析和定義、軟件設(shè)計、軟件實現(xiàn)、軟件測試、軟件運行和維護6個階段,并規(guī)定了它們自上而下、相互銜接的固定次序第52頁,共77頁。第53頁,共77頁。瀑布模型的特點十分明顯:軟件生存周期的順序性盡可能推遲軟件的編碼強調(diào)文檔第54頁,共77頁。瀑布模型的主要問題:各個階段的劃分完全固定,階段之間
17、產(chǎn)生大量的文檔,極大地增加了工作量。 由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果,從而增加了開發(fā)的風險。 早期的錯誤可能要等到開發(fā)后期的測試階段才能發(fā)現(xiàn),進而帶來嚴重的后果。第55頁,共77頁。1.5.2 快速原型模型第56頁,共77頁。 快速原型模型主要是針對在軟件開發(fā)過程中需求分析不明確的情形而提出的,它又稱為原型模型。采用快速原型模型進行開發(fā)的過程是:在開發(fā)真實系統(tǒng)之前構(gòu)造一個原型,在該原型的基礎(chǔ)上逐漸完成整個系統(tǒng)的開發(fā)工作。第57頁,共77頁。第58頁,共77頁。與瀑布模型相比,快速原型模型克服了瀑布模型的缺點,減少了由于軟件需求不明確而帶來的開發(fā)風險;軟件原型直
18、觀、形象,更多地遵循了人們認識事物的規(guī)律,因而更容易被人們接受;采用模擬的方法,縮短了用戶和系統(tǒng)分析、設(shè)計人員之間的距離;在整個系統(tǒng)開發(fā)過程中反饋及時,標準統(tǒng)一,因而可及時地暴露問題;充分利用了新一代軟件開發(fā)工具,使系統(tǒng)開發(fā)和運行的效率都大大提高??焖僭湍P偷牟蛔阒幵谟冢嚎焖俳⑵饋淼南到y(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會導致產(chǎn)品質(zhì)量低下。第59頁,共77頁。1.5.3 漸增模型第60頁,共77頁。第61頁,共77頁。與瀑布模型相比,快速原型模型克服了瀑布模型的缺點,減少了由于軟件需求不明確而帶來的開發(fā)風險;軟件原型直觀、形象,更多地遵循了人們認識事物的規(guī)律,因而更容易被人們接受;采用模擬的方法,縮短了用戶和系統(tǒng)分析、設(shè)計人員之間的距離;在整個系統(tǒng)開發(fā)過程中反饋及時,標準統(tǒng)一,因而可及時地暴露問題;充分利用了新一代軟件開發(fā)工具,使系統(tǒng)開發(fā)和運行的效率都大大提高??焖僭湍P偷牟蛔阒幵谟冢嚎焖俳⑵饋淼南到y(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會導致產(chǎn)品質(zhì)量低下。第62頁,共77頁。1.5.4 螺旋模型第63頁,共77頁。 螺旋模型將軟件開發(fā)劃分為制訂計劃、風險分析、實施開發(fā)和客戶評估4類活動,活動描述如下:制訂計劃:確定軟件目標,選定實施方案,明確項目開發(fā)的限制條件。風險分析:分析所選方案,考慮如何識別和消除風險。實施開發(fā):實施軟件開發(fā)仍然按照瀑布模型中的分析、設(shè)計、編碼、測試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江工業(yè)學院《生物醫(yī)學信息與統(tǒng)計學》2023-2024學年第二學期期末試卷
- 陽光學院《流體傳動與控制基礎(chǔ)》2023-2024學年第二學期期末試卷
- 武漢海事職業(yè)學院《單片機原理與應(yīng)用綜合設(shè)計》2023-2024學年第二學期期末試卷
- 大興安嶺職業(yè)學院《企業(yè)電子產(chǎn)品設(shè)計與制造》2023-2024學年第二學期期末試卷
- 四川汽車職業(yè)技術(shù)學院《科學社會主義概論》2023-2024學年第二學期期末試卷
- 雙頭應(yīng)急燈項目效益評估報告
- 沈陽音樂學院《內(nèi)科護理學(2)》2023-2024學年第二學期期末試卷
- 鄭州商貿(mào)旅游職業(yè)學院《社會治理》2023-2024學年第二學期期末試卷
- 伊犁師范大學《中職英語微格教學技能訓練》2023-2024學年第二學期期末試卷
- 人教版初中歷史與社會七年級上冊 3.5 干旱的寶地-塔里木盆地 教學設(shè)計
- 醫(yī)院骨科專病數(shù)據(jù)庫建設(shè)需求
- 三年級下冊混合計算100題及答案
- 中小學幼兒園安全風險防控工作規(guī)范
- ESD技術(shù)要求和測試方法
- 正確認識民族與宗教的關(guān)系堅持教育與宗教相分離
- 宜黃縣二都鎮(zhèn)高山飾面用花崗巖開采以及深加工項目環(huán)評報告
- 血液科護士的惡性腫瘤護理
- 畜禽廢棄物資源化利用講稿課件
- 土地糾紛調(diào)解簡單協(xié)議書
- 服裝倉庫管理制度及流程
- 《餐飲渠道開發(fā)方案》課件
評論
0/150
提交評論