電子科技大學(xué)軟件工程軟件工程概述(改)_第1頁
電子科技大學(xué)軟件工程軟件工程概述(改)_第2頁
電子科技大學(xué)軟件工程軟件工程概述(改)_第3頁
電子科技大學(xué)軟件工程軟件工程概述(改)_第4頁
電子科技大學(xué)軟件工程軟件工程概述(改)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、授課教師:授課教師: 藍藍 天天聯(lián)系電話:聯(lián)系電話: 1348892972313488929723電子郵箱:電子郵箱: 先修課:先修課: ( (也可同時進行也可同時進行) ) o 程序設(shè)計語言程序設(shè)計語言o 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)o 數(shù)據(jù)庫數(shù)據(jù)庫o 算法設(shè)計算法設(shè)計 1. 1. Software EngineeringSoftware Engineering(第(第8 8版),版),Ian SommervilleIan Sommerville,機械工業(yè)出版社,機械工業(yè)出版社 2. 2. 軟件工程(第軟件工程(第4 4版),弗里格,人民版),弗里格,人民郵電出版社郵電出版社 3. 3. 軟件工程:共同

2、演進的方法介紹,田文洪軟件工程:共同演進的方法介紹,田文洪等編著,機械工業(yè)出版社,等編著,機械工業(yè)出版社,20112011 第第1 1章章 概述概述 第第2 2章章 過程模型過程模型 第第3 3章章 需求分析需求分析 第第4 4章章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計 第第5 5章章 程序?qū)崿F(xiàn)程序?qū)崿F(xiàn) 第第6 6章章 質(zhì)量保證質(zhì)量保證 第第7 7章章 軟件維護軟件維護 第第8 8章章 項目管理項目管理 考核方式:閉卷考試考核方式:閉卷考試 成績構(gòu)成比例:成績構(gòu)成比例:o期末考試(期末考試(50%50%)+ + 期中考試(期中考試(20%20%)+ +實驗成績(實驗成績(20%20%)+ +平時成績(平時成績(1

3、0%10%) 學(xué)生有下列情形之一者,取消考試資格:學(xué)生有下列情形之一者,取消考試資格:o平時作業(yè)有平時作業(yè)有20%20%以上未按時完成;以上未按時完成;o實驗課缺課學(xué)時達到總學(xué)時的實驗課缺課學(xué)時達到總學(xué)時的20%20%以上;以上;o無正當(dāng)事由或未經(jīng)學(xué)院同意,課堂缺課學(xué)時達到課程總學(xué)時的無正當(dāng)事由或未經(jīng)學(xué)院同意,課堂缺課學(xué)時達到課程總學(xué)時的40%40%以上。以上。 大作業(yè):大作業(yè):o分組完成一個軟件系統(tǒng)分組完成一個軟件系統(tǒng)o選擇一種適合的軟件工程過程模型選擇一種適合的軟件工程過程模型o提交:提交: 必須:相應(yīng)實驗報告必須:相應(yīng)實驗報告 可選:程序(源碼、可執(zhí)行程序)、文檔(需求、設(shè)計、測試等開發(fā)

4、文檔)可選:程序(源碼、可執(zhí)行程序)、文檔(需求、設(shè)計、測試等開發(fā)文檔)軟件的相關(guān)知識介紹軟件的相關(guān)知識介紹1軟件工程的原則軟件工程的原則4軟件工程的相關(guān)課題軟件工程的相關(guān)課題5軟件工程的概念軟件工程的概念3軟件危機軟件危機2小結(jié)小結(jié)6v軟件定義:軟件定義: 軟件軟件=程序程序+數(shù)據(jù)數(shù)據(jù)+文檔文檔程序:按事先設(shè)計的功能和性能需求執(zhí)行的指令序列程序:按事先設(shè)計的功能和性能需求執(zhí)行的指令序列數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔:與程序開發(fā)、維護和使用有關(guān)的圖文材料文檔:與程序開發(fā)、維護和使用有關(guān)的圖文材料 軟件是開發(fā)的或者是工程化的,并不是制造的軟件是開發(fā)的

5、或者是工程化的,并不是制造的 軟件開發(fā)環(huán)境對產(chǎn)品影響較大軟件開發(fā)環(huán)境對產(chǎn)品影響較大 軟件開發(fā)時間和工作量難以估計軟件開發(fā)時間和工作量難以估計 軟件會多次修改軟件會多次修改 軟件的開發(fā)進度幾乎沒有客觀衡量標(biāo)準(zhǔn)軟件的開發(fā)進度幾乎沒有客觀衡量標(biāo)準(zhǔn) 軟件測試非常困難軟件測試非常困難 軟件不會磨損和老化軟件不會磨損和老化 軟件維護易產(chǎn)生新的問題軟件維護易產(chǎn)生新的問題 軟件生產(chǎn)是簡單的拷貝軟件生產(chǎn)是簡單的拷貝 一方面是一種產(chǎn)品一方面是一種產(chǎn)品o 提供計算能力提供計算能力o 產(chǎn)生、管理、獲取、修改、顯示或傳輸信息產(chǎn)生、管理、獲取、修改、顯示或傳輸信息 另一方面是開發(fā)其他軟件產(chǎn)品的工具另一方面是開發(fā)其他軟件產(chǎn)

6、品的工具o 支持或直接提供系統(tǒng)所需的功能支持或直接提供系統(tǒng)所需的功能o 控制其他程序(如操作系統(tǒng))控制其他程序(如操作系統(tǒng))o 改善通信(如網(wǎng)絡(luò)軟件)改善通信(如網(wǎng)絡(luò)軟件)o 幫助開發(fā)其它軟件(如軟件開發(fā)工具)幫助開發(fā)其它軟件(如軟件開發(fā)工具)o 其它功能其它功能 按軟件的功能進行劃分:按軟件的功能進行劃分:o 系統(tǒng)軟件系統(tǒng)軟件 操作系統(tǒng)操作系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng) 設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序 通信處理程序等通信處理程序等o 支撐軟件支撐軟件 文本編輯程序文本編輯程序 文件格式化程序文件格式化程序 磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虼疟P向磁帶向數(shù)據(jù)傳輸?shù)某绦?程序庫系統(tǒng)程序庫系統(tǒng) 支持需求分析

7、、設(shè)計、實現(xiàn)、測試和支持管理的軟支持需求分析、設(shè)計、實現(xiàn)、測試和支持管理的軟件件o 應(yīng)用軟件應(yīng)用軟件 商業(yè)數(shù)據(jù)處理軟件商業(yè)數(shù)據(jù)處理軟件 工程與科學(xué)計算軟件工程與科學(xué)計算軟件 計算機輔助設(shè)計制造軟件計算機輔助設(shè)計制造軟件 系統(tǒng)仿真軟件系統(tǒng)仿真軟件 智能產(chǎn)品嵌入軟件智能產(chǎn)品嵌入軟件 醫(yī)療、制藥軟件醫(yī)療、制藥軟件 事務(wù)管理、辦公自動化軟件事務(wù)管理、辦公自動化軟件 計算機輔助教學(xué)軟件計算機輔助教學(xué)軟件 按軟件規(guī)模進行劃分:按軟件規(guī)模進行劃分:o 類別類別 參加人員數(shù)參加人員數(shù) 研制期限研制期限 源程序行數(shù)源程序行數(shù) o 微型微型 1 1 1 14 4周周 0.5k 0.5k o 小型小型 1 1 1

8、16 6月月 1k1k2k2ko 中型中型 2 25 5 1 12 2年年 5k5k50k50ko 大型大型 5 52020 2 23 3年年 50k50k100k100ko 甚大型甚大型 1001001000 41000 45 5年年 1M(=1000k)1M(=1000k)o 極大型極大型 200020005000 55000 51010年年 1M1M10M10M 按軟件服務(wù)對象的范圍劃分按軟件服務(wù)對象的范圍劃分o 項目軟件項目軟件o 產(chǎn)品軟件產(chǎn)品軟件 某年某年Obfuscated C ContestObfuscated C Contest佳作佳作 #include #include lo

9、ng a=10000, b, c=2800, d, e, f2801, g;long a=10000, b, c=2800, d, e, f2801, g;main()main()for(;b-c;)fb+=a/5;for(;b-c;)fb+=a/5;for(;d=0,g=cfor(;d=0,g=c* *2;c-=14,printf(%.4d,e+d/a),e=2;c-=14,printf(%.4d,e+d/a),e=d%ad%a) )for(b=for(b=c;dc;d+=fb+=fb* *a,fa,fb=d%-b=d%-g,dg,d/=g-,-/=g-,-b;db;d* *=b);=b);

10、 難懂的難懂的C C代碼:代碼: 計算需求:軟件必須適應(yīng)新的計算環(huán)境或技術(shù);計算需求:軟件必須適應(yīng)新的計算環(huán)境或技術(shù); 業(yè)務(wù)要求:軟件必須改善,以實現(xiàn)新的業(yè)務(wù)需求;業(yè)務(wù)要求:軟件必須改善,以實現(xiàn)新的業(yè)務(wù)需求; 嵌入式需求:軟件必須擴展,以滿足和新一代系嵌入式需求:軟件必須擴展,以滿足和新一代系統(tǒng)或數(shù)據(jù)庫之間的互操作性;統(tǒng)或數(shù)據(jù)庫之間的互操作性; 架構(gòu)需求:軟件必須重新設(shè)計,使其在新的網(wǎng)絡(luò)架構(gòu)需求:軟件必須重新設(shè)計,使其在新的網(wǎng)絡(luò)環(huán)境是可用的。環(huán)境是可用的。v 項目超出預(yù)算項目超出預(yù)算v 項目超過計劃完成時間

11、項目超過計劃完成時間v 軟件運行效率很低軟件運行效率很低v 軟件質(zhì)量差軟件質(zhì)量差v 軟件通常不符合要求軟件通常不符合要求v 項目難以管理并且代碼難以維護項目難以管理并且代碼難以維護v 軟件不能交付軟件不能交付 客觀:軟件本身特點客觀:軟件本身特點o 邏輯部件邏輯部件o 規(guī)模龐大規(guī)模龐大 主觀:不正確的開發(fā)方法主觀:不正確的開發(fā)方法o 忽視需求分析忽視需求分析o 錯誤認(rèn)為:軟件開發(fā)錯誤認(rèn)為:軟件開發(fā)= =程序編寫程序編寫o 輕視軟件維護輕視軟件維護 緩解軟件危機? 軟件工程!軟件工程! 對計算機軟件有一個正確的認(rèn)識對計算機軟件有一個正確的認(rèn)識: ( (軟件軟件 程序)程序) 必須充分認(rèn)識到軟件開

12、發(fā)不是某種個體勞動的神必須充分認(rèn)識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項目。類人員協(xié)同配合、共同完成的工程項目。 推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法。開發(fā)和使用更好的軟件工具。術(shù)和方法。開發(fā)和使用更好的軟件工具。軟件工程的目標(biāo)是在給定的時間和預(yù)算內(nèi),按照用戶的需求,開發(fā)易修改、高效、可靠、可維護、適應(yīng)力強、可移動、可重用的軟件IEEE計算機協(xié)會將軟件工程定義為:(1)應(yīng)用系統(tǒng)化的、學(xué)科化的、定量的方法,來開發(fā)、運行和維護軟件,即,

13、將工程應(yīng)用到軟件。(2)對(1)中各種方法的研究。過程貫穿軟件開發(fā)的各個環(huán)節(jié),在各環(huán)節(jié)之間建立里程碑; 管理者在軟件工程過程中對軟件開發(fā)的質(zhì)量、進度、成本進行評估、管理和控制; 技術(shù)人員采用相應(yīng)的方法和工具生成軟件工程產(chǎn)品(模型、文檔、數(shù)據(jù)、報告、表格等)。軟件工程方法是完成軟件工程項目的技術(shù)手段。它支持項目計劃和估算、系統(tǒng)和軟件需求分析、設(shè)計、編程、測試和維護。軟件工程方法依賴一組原則,它貫穿軟件工程的各個環(huán)節(jié)。軟件工程方法分兩類:結(jié)構(gòu)化方法和面向?qū)ο蠓椒āK鼮檐浖こ痰倪^程和方法提供自動化或半自動化的工具支持。 將若干工具集成起來,與軟件工程數(shù)據(jù)庫和計算機系統(tǒng)構(gòu)成一個支持軟件開發(fā)的系統(tǒng)稱“

14、計算機輔助軟件工程(CASE)”,系統(tǒng)中某一工具的信息加工結(jié)果可以作為另一工具的輸入。 集成的軟件工程工具再加上人的因素構(gòu)成了軟件工程環(huán)境。 B. W. Boehm B. W. Boehm于于19831983年總結(jié)了開發(fā)軟件的經(jīng)驗,提出了軟件工程的年總結(jié)了開發(fā)軟件的經(jīng)驗,提出了軟件工程的7 7條基本原則。這條基本原則。這7 7條原則被認(rèn)為是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原條原則被認(rèn)為是確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原則的最小集合,又是相互獨立、缺一不可、相當(dāng)完備的最小集合。則的最小集合,又是相互獨立、缺一不可、相當(dāng)完備的最小集合。1.1.使用階段性生命周期計劃的管理使用階段性生命周期計劃的管理2.

15、2.進行連續(xù)的驗證進行連續(xù)的驗證3.3.保證嚴(yán)格的產(chǎn)品控制保證嚴(yán)格的產(chǎn)品控制4.4.使用現(xiàn)代編程工具使用現(xiàn)代編程工具/ /工程實踐工程實踐5.5.保持清晰的責(zé)任分配保持清晰的責(zé)任分配6.6.用更好更少的人用更好更少的人7.7.保持過程改進保持過程改進 計算機工程計算機工程 計算機科學(xué)計算機科學(xué) 管理學(xué)管理學(xué) 數(shù)學(xué)數(shù)學(xué) 項目管理項目管理 質(zhì)量科學(xué)質(zhì)量科學(xué) 軟件工程學(xué)軟件工程學(xué) 系統(tǒng)工程系統(tǒng)工程 。軟件工程軟件工程計算機科學(xué)計算機科學(xué)目標(biāo)目標(biāo)在時間、資源、人員這在時間、資源、人員這3 3個主要限制條件下構(gòu)個主要限制條件下構(gòu)建滿足用戶需求的軟件系統(tǒng)建滿足用戶需求的軟件系統(tǒng)探索正確的計算和建模方法,探

16、索正確的計算和建模方法,從而改進計算方法本身從而改進計算方法本身產(chǎn)品產(chǎn)品軟件(比如辦公包和編譯器)軟件(比如辦公包和編譯器)算法(比如希爾排序法)和抽算法(比如希爾排序法)和抽象的問題(比如哲學(xué)家進餐問象的問題(比如哲學(xué)家進餐問題)題)進度與時間表進度與時間表軟件項目都有特定的進度與時間表軟件項目都有特定的進度與時間表研究項目一般不具有設(shè)置的進研究項目一般不具有設(shè)置的進度與時間表度與時間表關(guān)注點關(guān)注點軟件工程關(guān)注如何為用戶實現(xiàn)價值軟件工程關(guān)注如何為用戶實現(xiàn)價值軟件理論關(guān)注的是軟件本身運軟件理論關(guān)注的是軟件本身運行的原理,比如時間復(fù)雜度,行的原理,比如時間復(fù)雜度,空間復(fù)雜度,和算法的正確性空間復(fù)

17、雜度,和算法的正確性變化程度變化程度隨著技術(shù)和用戶需求的不斷變化,軟件開發(fā)隨著技術(shù)和用戶需求的不斷變化,軟件開發(fā)人員必須時刻調(diào)整自己的開發(fā)以適應(yīng)當(dāng)前的人員必須時刻調(diào)整自己的開發(fā)以適應(yīng)當(dāng)前的需求。同時軟件工程本身也處于不斷的發(fā)展需求。同時軟件工程本身也處于不斷的發(fā)展中中對于某一種特定問題的正確解對于某一種特定問題的正確解決方法將永遠(yuǎn)不會改變決方法將永遠(yuǎn)不會改變需要的其他知需要的其他知識識相關(guān)領(lǐng)域的知識相關(guān)領(lǐng)域的知識數(shù)學(xué)數(shù)學(xué) M M 代表誤解,代表誤解,R R 代表現(xiàn)實。代表現(xiàn)實。 管理方面的誤解管理方面的誤解: :o M1: M1: 我們已經(jīng)有一本關(guān)于軟件生產(chǎn)的標(biāo)準(zhǔn)和過程的書,這還不能讓我們我們

18、已經(jīng)有一本關(guān)于軟件生產(chǎn)的標(biāo)準(zhǔn)和過程的書,這還不能讓我們學(xué)習(xí)到需要的知識嗎?學(xué)習(xí)到需要的知識嗎?o R1: R1: 相比最新的大型主機,工作站和相比最新的大型主機,工作站和PCPC,這會使我們在做高質(zhì)量軟件開,這會使我們在做高質(zhì)量軟件開發(fā)時花費更多時間。發(fā)時花費更多時間。o M2: M2: 如果我們項目進度落后了,可以加入更多的程序員來趕進度。如果我們項目進度落后了,可以加入更多的程序員來趕進度。o R2: R2: 軟件開發(fā)的機制和手工作業(yè)不一樣。在一個延遲了的軟件項目中加入軟件開發(fā)的機制和手工作業(yè)不一樣。在一個延遲了的軟件項目中加入新的開發(fā)人員只會讓它延遲更多。新的開發(fā)人員只會讓它延遲更多。o

19、 M3: M3: 如果我們將軟件項目外包給第三方,我們就輕松了,讓那個公司去如果我們將軟件項目外包給第三方,我們就輕松了,讓那個公司去完成它吧。完成它吧。o R3: R3: 如果組織管理方不懂得如何從內(nèi)部管理和控制軟件項目,即使將項目如果組織管理方不懂得如何從內(nèi)部管理和控制軟件項目,即使將項目外包也無濟于事。外包也無濟于事。 客戶客戶: : 由于用戶不正確的期望,最后導(dǎo)由于用戶不正確的期望,最后導(dǎo)致對開發(fā)人員的不滿。致對開發(fā)人員的不滿。o M1: M1: 對目標(biāo)的一般陳述就足以開始編程,我們可以今對目標(biāo)的一般陳述就足以開始編程,我們可以今后再補充細(xì)節(jié)。后再補充細(xì)節(jié)。o R1: R1: 前期糟糕

20、的項目需求定義,是導(dǎo)致軟件失敗的主要前期糟糕的項目需求定義,是導(dǎo)致軟件失敗的主要原因。原因。o R2: R2: 項目需求的確在不斷變化,但變化所產(chǎn)生的影響是項目需求的確在不斷變化,但變化所產(chǎn)生的影響是根據(jù)變化提出的時間不同而不同的。根據(jù)變化提出的時間不同而不同的。 實踐者實踐者: : 軟件從業(yè)者積累了軟件從業(yè)者積累了50 50 年的編程文年的編程文化。在早期的軟件開發(fā)中,編程被視為一化。在早期的軟件開發(fā)中,編程被視為一種藝術(shù)形式。種藝術(shù)形式。o M1: M1: 一旦我們編程完畢并成功運行,我們的工作就結(jié)束了。一旦我們編程完畢并成功運行,我們的工作就結(jié)束了。o R1: “R1: “越早開始寫代碼

21、,我們就會花費越長的時間去完成它越早開始寫代碼,我們就會花費越長的時間去完成它”。工。工業(yè)數(shù)據(jù)顯示,軟件開發(fā)業(yè)數(shù)據(jù)顯示,軟件開發(fā)60%-80%60%-80%的精力將耗費在軟件首次提交給的精力將耗費在軟件首次提交給用戶以后。用戶以后。o M2: M2: 當(dāng)我的程序運行之前,我沒有辦法評估它的質(zhì)量。當(dāng)我的程序運行之前,我沒有辦法評估它的質(zhì)量。o R2: R2: 一個最有效的軟件質(zhì)量保證機制應(yīng)當(dāng)在項目的正式開始啟動一個最有效的軟件質(zhì)量保證機制應(yīng)當(dāng)在項目的正式開始啟動時時可以通過技術(shù)報告體現(xiàn)??梢酝ㄟ^技術(shù)報告體現(xiàn)。o M3: M3: 唯一可交付的工作成果是一個成功運行的項目程序。唯一可交付的工作成果是一個成功運行的項目程序。o R3: R3: 一個可運行的程序只是軟件結(jié)構(gòu)的一部分,它還包含了許多一個可運行的程序只是軟件結(jié)構(gòu)的一部分,它還包含了許多其它因素。其它因素。o M4: M4: 軟件工程將會讓我們?nèi)?chuàng)建大量不必要的文檔,并且總是使軟件工程將會讓我們?nèi)?chuàng)建大量不必要的文檔,并且總是使我們的進度放慢。軟件工程僅僅是文檔而已。我們的進度放慢。軟件工程僅僅是文檔而已。o R4: R4: 軟件工程并不是創(chuàng)建文檔,而是創(chuàng)建質(zhì)量。更好的質(zhì)量減少軟件工程并不是創(chuàng)建文檔,而是創(chuàng)建質(zhì)量。更好的質(zhì)量減少返工的概率。更少返工會讓項目更早交付。所有的文檔都是提高返工的概率。更少

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論