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

下載本文檔

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

文檔簡介

1、1軟件工程西南財經(jīng)大學(xué)天府學(xué)院2成績考核v考勤 - 20v期末考試 - 30v項(xiàng)目成績 - 50項(xiàng)目成績項(xiàng)目成績:本課程采用項(xiàng)目教學(xué)法,項(xiàng)目成績包括需求、設(shè)計文檔、UML建模圖。3內(nèi)容 - 理論v軟件工程概論v軟件過程介紹v結(jié)構(gòu)化分析、設(shè)計、實(shí)現(xiàn)v面向?qū)ο蠓椒▽W(xué)導(dǎo)論v面向?qū)ο蠓治?、設(shè)計、實(shí)現(xiàn)v統(tǒng)一建模語言v項(xiàng)目展示 4內(nèi)容 - 實(shí)驗(yàn)上機(jī)v用案圖v對象圖v類圖v狀態(tài)圖v活動圖v協(xié)作圖v序列圖 5如何學(xué)習(xí)軟件工程v耐心先學(xué)習(xí)課本理論、多看開闊視野 v網(wǎng)絡(luò)是最好的老師希賽 http:/UML軟件工程組織 http:/ http:/ 百度http:/ v實(shí)踐是最好的學(xué)習(xí)手段6參考書籍推薦v平衡敏捷和規(guī)

2、范作 者:(美)BarryBoehm (美)RichardTurner v軟件架構(gòu)實(shí)踐作 者: (美) Len Bass (美) Pick Kazmanv產(chǎn)生式編程方法、工具與應(yīng)用作 者:Generative Programming Methods,Tools,and Applications 7八十年代初科學(xué)家的預(yù)言vOsborne 1979 將迎來將迎來” 新的工業(yè)革命新的工業(yè)革命”vToffler 1980 微電子的發(fā)展是人類歷史上的微電子的發(fā)展是人類歷史上的”第三次浪潮第三次浪潮”v80年代初 美國商業(yè)周刊雜志在頭版刊登大標(biāo)題:美國商業(yè)周刊雜志在頭版刊登大標(biāo)題: “軟件:新的驅(qū)動力軟件

3、:新的驅(qū)動力”! 8vNaisbitt 1982 人類社會將人類社會將“從工業(yè)社會向信息社會轉(zhuǎn)變從工業(yè)社會向信息社會轉(zhuǎn)變”vFeigenbaum 1983 計算機(jī)控制的信息和知識將成為計算機(jī)控制的信息和知識將成為20世紀(jì)表現(xiàn)能力世紀(jì)表現(xiàn)能力的焦點(diǎn)的焦點(diǎn)vStoll 1989 網(wǎng)絡(luò)和軟件產(chǎn)生的網(wǎng)絡(luò)和軟件產(chǎn)生的“電子社會電子社會”是實(shí)現(xiàn)全球知識交是實(shí)現(xiàn)全球知識交流的關(guān)鍵。流的關(guān)鍵。9二十年后的現(xiàn)實(shí)v計算機(jī)的發(fā)展與普及計算機(jī)的發(fā)展與普及v計算機(jī)軟件的發(fā)展與普及計算機(jī)軟件的發(fā)展與普及v計算機(jī)網(wǎng)絡(luò)的發(fā)展與普及計算機(jī)網(wǎng)絡(luò)的發(fā)展與普及因?yàn)槠占傲擞嬎銠C(jī)、軟件和網(wǎng)絡(luò)因?yàn)槠占傲擞嬎銠C(jī)、軟件和網(wǎng)絡(luò)迎來了信息化社會和

4、知識經(jīng)濟(jì)。迎來了信息化社會和知識經(jīng)濟(jì)。10軟件工程的重要性 v歷史角度軟件產(chǎn)業(yè)發(fā)展的必然軟件危機(jī)11v社會角度 - 個人英雄主義時代的終結(jié)史玉柱史玉柱(巨人漢卡巨人漢卡)鮑岳橋(鮑岳橋(UCDOS)求伯君求伯君(WPS)劉旭劉旭(瑞星瑞星)王江民王江民(KV)王文京王文京(用友用友)張小龍張小龍(Foxmail)丁磊(丁磊(163郵局)郵局)洪以容(洪以容(netants)12v這些英雄如今不是銷聲匿跡,就是組成了自己的團(tuán)這些英雄如今不是銷聲匿跡,就是組成了自己的團(tuán)隊(duì)。隊(duì)。我們需要英雄,但是,如果只有英我們需要英雄,但是,如果只有英雄,那么就只有軟件、而沒有軟件業(yè)了雄,那么就只有軟件、而沒有軟

5、件業(yè)了。能夠支撐起民族軟件業(yè)的只能是靠能夠支撐起民族軟件業(yè)的只能是靠工程化思想武工程化思想武裝起來的團(tuán)隊(duì)、還要有幾只超級規(guī)模的團(tuán)隊(duì)裝起來的團(tuán)隊(duì)、還要有幾只超級規(guī)模的團(tuán)隊(duì)!13v我國的軟件開發(fā)水平,單從編碼來看,我們擁有眾我國的軟件開發(fā)水平,單從編碼來看,我們擁有眾多的高水平程序員,絕不遜色于任何國家,但軟件多的高水平程序員,絕不遜色于任何國家,但軟件開發(fā)管理水平與發(fā)達(dá)國家有很大差距,這也就是我開發(fā)管理水平與發(fā)達(dá)國家有很大差距,這也就是我們不能開發(fā)出像們不能開發(fā)出像Office、操作系統(tǒng)之類軟件的原、操作系統(tǒng)之類軟件的原因。因。v我們從單個程序員來說,能夠編寫出一流的代碼,我們從單個程序員來說,

6、能夠編寫出一流的代碼,漂亮的界面。但是卻不能協(xié)調(diào)眾多程序員去開發(fā)一漂亮的界面。但是卻不能協(xié)調(diào)眾多程序員去開發(fā)一個項(xiàng)目(工程)軟件。在這一方面說我們個項(xiàng)目(工程)軟件。在這一方面說我們中國程中國程序員一個人是一條龍,十個人是一條蟲序員一個人是一條龍,十個人是一條蟲并不為過。并不為過。14v例:首都機(jī)場。例:首都機(jī)場。印度人寫的一個模塊印度人寫的一個模塊200多行,我們程序員只用不多行,我們程序員只用不到到50行,但人家的模塊同樣正確、而且堅(jiān)固、文行,但人家的模塊同樣正確、而且堅(jiān)固、文檔清晰易懂。檔清晰易懂。= 技術(shù)技巧固然重要,但技術(shù)技巧固然重要,但軟件開發(fā)中最大的問題軟件開發(fā)中最大的問題已不是

7、技術(shù)問題,而是管理問題!已不是技術(shù)問題,而是管理問題!15v個人角度 - 專業(yè)人員必備的個人素質(zhì) 1) 基礎(chǔ)理論基礎(chǔ)理論:訓(xùn)練分析解決問題的能力,深層研究的工具。:訓(xùn)練分析解決問題的能力,深層研究的工具。數(shù)學(xué)分析訓(xùn)練嚴(yán)密的邏輯思維。普通物理和西方哲學(xué)史等數(shù)學(xué)分析訓(xùn)練嚴(yán)密的邏輯思維。普通物理和西方哲學(xué)史等教會你很多思維方式,比如:假說教會你很多思維方式,比如:假說大膽假設(shè)、認(rèn)真求證大膽假設(shè)、認(rèn)真求證。2) 專業(yè)理論專業(yè)理論:數(shù)據(jù)庫理論、網(wǎng)絡(luò)基礎(chǔ)、編譯原理等。:數(shù)據(jù)庫理論、網(wǎng)絡(luò)基礎(chǔ)、編譯原理等。3) 專業(yè)技術(shù)專業(yè)技術(shù):程序設(shè)計語言等。:程序設(shè)計語言等。4) 工程技術(shù)工程技術(shù):軟件工程,本、研教育中

8、:軟件工程,本、研教育中唯一唯一涉及工程規(guī)范與涉及工程規(guī)范與管理的課程,它象粘合劑,技術(shù)經(jīng)過它的粘合才能形成軟管理的課程,它象粘合劑,技術(shù)經(jīng)過它的粘合才能形成軟件產(chǎn)品!件產(chǎn)品!5) 外語外語。多門語言多條路。多門語言多條路。6) 表達(dá)與交流能力表達(dá)與交流能力:團(tuán)隊(duì)內(nèi)部、與客戶通訊的基本素質(zhì)。:團(tuán)隊(duì)內(nèi)部、與客戶通訊的基本素質(zhì)。7) 法律常識與職業(yè)道德法律常識與職業(yè)道德:知識產(chǎn)權(quán)保護(hù)、行業(yè)特點(diǎn)的職業(yè)道:知識產(chǎn)權(quán)保護(hù)、行業(yè)特點(diǎn)的職業(yè)道德。德。16課程學(xué)習(xí)的目標(biāo)v掌握基礎(chǔ)理論掌握基礎(chǔ)理論v樹立工程化思想樹立工程化思想v培養(yǎng)國際標(biāo)準(zhǔn)的意識培養(yǎng)國際標(biāo)準(zhǔn)的意識v鍛煉團(tuán)隊(duì)合作精神鍛煉團(tuán)隊(duì)合作精神v加強(qiáng)交流與動

9、手能力加強(qiáng)交流與動手能力17兩個上升u轉(zhuǎn)變對軟件的認(rèn)識轉(zhuǎn)變對軟件的認(rèn)識 上升上升 程序程序 系統(tǒng)系統(tǒng)u 轉(zhuǎn)變思維定式轉(zhuǎn)變思維定式 上升上升 程序員程序員 系統(tǒng)工程師系統(tǒng)工程師( (系統(tǒng)分析員系統(tǒng)分析員) )18軟件危機(jī)v軟件的發(fā)展史v什么是軟件v軟件的特點(diǎn)v軟件危機(jī)19v1946年到60年代初 程序設(shè)計時期主要采用批處理技術(shù),沒有任何其它形式的文檔資料保留下來,開發(fā)出的程序根本無法維護(hù)。v20世紀(jì)60年代初到70年代初 程序系統(tǒng)時期程序的規(guī)模已經(jīng)很大,需要多人分工協(xié)作,軟件的開發(fā)方式由“個體生產(chǎn)”發(fā)展到了“軟件作坊”。可是“軟件作坊”基本上沿用了軟件發(fā)展早期所形成的個體化的開發(fā)方式,軟件的開發(fā)

10、與維護(hù)費(fèi)用以驚人的速度增加。許多軟件產(chǎn)品根本不能維護(hù),最終導(dǎo)致出現(xiàn)了嚴(yán)重的“軟件危機(jī)”20v20世紀(jì)70年代中期至80年代中期 軟件工程時期軟件的開發(fā)以工程化的思想為指導(dǎo),用工程化的原則、方法和標(biāo)準(zhǔn)來開發(fā)和維護(hù)軟件。v20世紀(jì)80年代中期至今 面向?qū)ο髸r期面向?qū)ο筌浖_發(fā)技術(shù)在迅速取代傳統(tǒng)軟件工程開發(fā)方法。21 早期早期 第二階段第二階段 第三階段第三階段 第四階段第四階段面向批處理面向批處理 多用戶多用戶 分布式系統(tǒng)分布式系統(tǒng) 強(qiáng)大的桌面系統(tǒng)強(qiáng)大的桌面系統(tǒng)有限的分布有限的分布 實(shí)時實(shí)時 嵌入嵌入“智能智能” 面向?qū)ο蠹济嫦驅(qū)ο蠹夹g(shù)術(shù)自定義軟件自定義軟件 數(shù)據(jù)庫數(shù)據(jù)庫 低成本硬件低成本硬件 專

11、家系專家系統(tǒng) 軟件產(chǎn)品軟件產(chǎn)品 消費(fèi)者的影響消費(fèi)者的影響 人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò) 并行計算并行計算 網(wǎng)絡(luò)計算機(jī)網(wǎng)絡(luò)計算機(jī)19501960197019801990200022什么是軟件v軟件 = 程序?v究竟什么是軟件?軟件 = 程序 + 數(shù)據(jù) + 文檔v軟件軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合完整集合23v程序程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。- 可以在計算上運(yùn)行v數(shù)據(jù)數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)。-運(yùn)行程序所需要的v文檔文檔是與程序開發(fā),維護(hù)和使用有

12、關(guān)的圖文材料。-軟件開發(fā)、維護(hù)、使用需要的。24PCSource CodeDataResultDocument程序程序 = 算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)25v軟件的特點(diǎn):(1) 軟件是物理產(chǎn)品還是邏輯產(chǎn)品?(2) 軟件有沒有明顯的制造過程?(3) 軟件在運(yùn)行使用期間,有沒有像硬件那樣的機(jī)械磨損、老化問題。 (4) 軟件的開發(fā)和運(yùn)行受計算機(jī)系統(tǒng)的限制嗎?邏輯產(chǎn)品邏輯產(chǎn)品沒沒有有沒沒有有答案是肯定的答案是肯定的26(5)軟件產(chǎn)品生產(chǎn)的成本主要是腦力勞動還是體力勞動?(6) 你認(rèn)為軟件本身是復(fù)雜還是簡單?腦力勞動腦力勞動復(fù)復(fù)雜雜27(7) 軟件成本昂貴還是廉價?(8) 軟件的推廣應(yīng)用是否涉及社會因素?

13、 昂昂貴貴當(dāng)然涉及當(dāng)然涉及28軟件的應(yīng)用軟件的應(yīng)用v典型的軟件比如有典型的軟件比如有電子郵件電子郵件,嵌入式系統(tǒng)嵌入式系統(tǒng),人機(jī)界人機(jī)界面面,辦公套件辦公套件,操作系統(tǒng)操作系統(tǒng),編譯器編譯器,數(shù)據(jù)庫數(shù)據(jù)庫,游戲游戲等。等。 v各個行業(yè)幾乎都有計算機(jī)軟件的應(yīng)用,比如各個行業(yè)幾乎都有計算機(jī)軟件的應(yīng)用,比如工業(yè)工業(yè),農(nóng)業(yè)農(nóng)業(yè),銀行銀行,航空航空,政府部門,企業(yè)政府部門,企業(yè)等。等。29軟件技術(shù)面臨的問題軟件技術(shù)面臨的問題v規(guī)模v復(fù)雜性v生產(chǎn)率30例例1: Windows 9595有多少行代碼?有多少行代碼?1500w1500w Windows 9898有多少行代碼?有多少行代碼?1800w1800w

14、 Windows XP XP有多少行代碼?有多少行代碼?1800w1800w Vista 有多少行代碼有多少行代碼? ?5000W5000W31Exchange2000Windows20002000項(xiàng)目經(jīng)理項(xiàng)目經(jīng)理25人人約約250人人開發(fā)人員開發(fā)人員140人人約約1700人人測試人員測試人員350人人約約3200人人例例2:Exchange2000和和 Windows20002000開發(fā)人員結(jié)構(gòu)開發(fā)人員結(jié)構(gòu)32v1968年北大西洋公約組織的計算機(jī)科學(xué)家在德國召開國際會議,把計算機(jī)軟件的開發(fā)和維護(hù)過程中出現(xiàn)的一系列嚴(yán)重問題稱為“軟件危機(jī)軟件危機(jī)”。33vIBM OS/360:共約共約100萬條

15、指令,花費(fèi)了萬條指令,花費(fèi)了5000個人年;經(jīng)費(fèi)達(dá)個人年;經(jīng)費(fèi)達(dá)數(shù)億美圓,而結(jié)果卻令人沮喪,錯誤多達(dá)數(shù)億美圓,而結(jié)果卻令人沮喪,錯誤多達(dá)2000個個以上,系統(tǒng)根本無法正常運(yùn)行。以上,系統(tǒng)根本無法正常運(yùn)行。 OS/360系統(tǒng)的系統(tǒng)的負(fù)責(zé)人負(fù)責(zé)人Brooks這樣描述開發(fā)過程的困難和混亂:這樣描述開發(fā)過程的困難和混亂:“像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在漿就沾得越多,最后沒有一個野獸能夠逃脫淹沒在泥潭中的命運(yùn)。泥潭中的命運(yùn)?!?34軟件危機(jī)的代表3536vTherac-25:一種輻射治療的機(jī)器。由于其軟件一種輻

16、射治療的機(jī)器。由于其軟件設(shè)計時的瑕疵設(shè)計時的瑕疵, 致命地超過劑量設(shè)定導(dǎo)致在致命地超過劑量設(shè)定導(dǎo)致在1985年六月到年六月到1987年一月之間年一月之間, 六件已知的醫(yī)療事故六件已知的醫(yī)療事故中中, 患者死亡或嚴(yán)重輻射灼傷患者死亡或嚴(yán)重輻射灼傷 。37軟件危機(jī)的主要特征軟件危機(jī)的主要特征v軟件開發(fā)周期大大超過規(guī)定日期;軟件開發(fā)周期大大超過規(guī)定日期;v軟件開發(fā)成本嚴(yán)重超標(biāo);軟件開發(fā)成本嚴(yán)重超標(biāo);v軟件質(zhì)量難于保證;軟件質(zhì)量難于保證;3852002020001000需求分析結(jié)構(gòu)設(shè)計詳細(xì)設(shè)計編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的改正一個問題的估算費(fèi)用估算費(fèi)用/美元美元改正一個問題的改正一個問題的估算

17、工作量估算工作量/人人日日0.050.52.5改正一個問題改正一個問題需付出的代價需付出的代價代價早期 中期 晚期 時間高中低變更代價隨時變更代價隨時間變化的趨勢間變化的趨勢39軟件危機(jī)產(chǎn)生的原因v軟件開發(fā)無計劃v軟件需求不充分v軟件開發(fā)過程不規(guī)范v軟件產(chǎn)品無評測手段v軟件開發(fā)周期大大超過預(yù)算v軟件開發(fā)成本嚴(yán)重超標(biāo)v軟件質(zhì)量難于保證軟件不能滿足社會發(fā)展軟件不能滿足社會發(fā)展的需求,成為社會、經(jīng)的需求,成為社會、經(jīng)濟(jì)發(fā)展的制約因素濟(jì)發(fā)展的制約因素40v怎么樣來解決軟件危機(jī)?20世紀(jì)60年代后期出現(xiàn)了軟件危機(jī),北大兩洋公約組織在德國提出了“軟件工程軟件工程”的概念,運(yùn)用其它工程學(xué)的基本原理和方法,設(shè)

18、計和管理軟件生產(chǎn)。誕生了軟件工程學(xué),這是目前發(fā)現(xiàn)的解決軟件危機(jī)唯有效的方法。軟件工程的目標(biāo):軟件工程的目標(biāo):提高軟件產(chǎn)品的質(zhì)量和提高軟件產(chǎn)品的質(zhì)量和軟件開發(fā)效率,減少軟件維護(hù)的難度軟件開發(fā)效率,減少軟件維護(hù)的難度41什么是軟件工程?v1983年年IEEE給軟件工程的定義給軟件工程的定義:軟件工程是開:軟件工程是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法。發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法。vFairly認(rèn)為認(rèn)為:“軟件工程學(xué)是為了在成本限額以內(nèi)軟件工程學(xué)是為了在成本限額以內(nèi)按時完成開發(fā)和修復(fù)軟件產(chǎn)品所需要的系統(tǒng)生產(chǎn)和按時完成開發(fā)和修復(fù)軟件產(chǎn)品所需要的系統(tǒng)生產(chǎn)和維護(hù)技術(shù)及管理學(xué)科維護(hù)技術(shù)及管理學(xué)科”。

19、強(qiáng)調(diào)強(qiáng)調(diào)“系統(tǒng)方法系統(tǒng)方法”,而不是而不是“個人技巧個人技巧”強(qiáng)調(diào)強(qiáng)調(diào)“成本限額以內(nèi)成本限額以內(nèi)”及及“技術(shù)和管理兩個方面技術(shù)和管理兩個方面”42vFritz Bauer認(rèn)為認(rèn)為:“軟件工程是為了經(jīng)濟(jì)地獲得軟件工程是為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用的完善的工程化原則立和使用的完善的工程化原則”。v1993年年IEEE進(jìn)一步給出了一個更全面的定義進(jìn)一步給出了一個更全面的定義:軟件工程是:軟件工程是:(1)把系統(tǒng)化的、規(guī)范的、可度量的把系統(tǒng)化的、規(guī)范的、可度量的途徑應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的過程,也就是途徑應(yīng)用于軟件開

20、發(fā)、運(yùn)行和維護(hù)的過程,也就是把工程化應(yīng)用于軟件中;把工程化應(yīng)用于軟件中;(2)研究研究(1)中提到的途中提到的途徑。徑。強(qiáng)調(diào)強(qiáng)調(diào)“經(jīng)濟(jì)地開發(fā)出高質(zhì)經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件,應(yīng)建立和使用量的軟件,應(yīng)建立和使用的完善的工程化原則的完善的工程化原則”。43v什么是軟件工程?軟件工程就是指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科.采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程.44軟件工程學(xué)三要素工具方法方法過程過程質(zhì)量焦點(diǎn)質(zhì)量焦點(diǎn)軟件工程三要素v 過程是完成開發(fā)軟件各項(xiàng)任務(wù)的

21、工作步驟。v 方法是完成軟件開發(fā)的技術(shù)方法;包含了軟件生命周期方法學(xué)與面向?qū)ο蠓椒▽W(xué)v 工具是開發(fā)軟件的支撐環(huán)境;45軟件工程知識結(jié)構(gòu)v 軟件需求軟件需求v 軟件設(shè)計軟件設(shè)計v 軟件構(gòu)建軟件構(gòu)建v 軟件測試軟件測試v 軟件維護(hù)軟件維護(hù)v 軟件配置管理軟件配置管理v 軟件工程管理軟件工程管理v 軟件工程過程軟件工程過程v 軟件工程工具和方法軟件工程工具和方法v 軟件質(zhì)量軟件質(zhì)量IEEE在2004年發(fā)布軟件工程知識體系結(jié)構(gòu)46v“軟件工程軟件工程”課程課程與其它軟件專業(yè)課的區(qū)別與其它軟件專業(yè)課的區(qū)別(1)(1)立足于系統(tǒng)的整體。立足于系統(tǒng)的整體。(2)(2)講授系統(tǒng)分析、系統(tǒng)設(shè)計、測試及維護(hù)的理論

22、講授系統(tǒng)分析、系統(tǒng)設(shè)計、測試及維護(hù)的理論和方法。和方法。(3)(3)構(gòu)筑一個軟件系統(tǒng),實(shí)踐軟件開發(fā)全過程。構(gòu)筑一個軟件系統(tǒng),實(shí)踐軟件開發(fā)全過程。47軟件工程的軟件工程的7條基本原理?xiàng)l基本原理v用分階段的生命周期計劃嚴(yán)格管理;用分階段的生命周期計劃嚴(yán)格管理;v堅(jiān)持進(jìn)行階段評審;堅(jiān)持進(jìn)行階段評審;v實(shí)行嚴(yán)格的產(chǎn)品控制;實(shí)行嚴(yán)格的產(chǎn)品控制;v采用現(xiàn)代程序設(shè)計技術(shù);采用現(xiàn)代程序設(shè)計技術(shù);v結(jié)果應(yīng)能清楚審查;結(jié)果應(yīng)能清楚審查;v開發(fā)小組的人員應(yīng)該少而精;開發(fā)小組的人員應(yīng)該少而精;v承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性;48軟件工程的主要研究內(nèi)容v軟件開發(fā)技術(shù)軟件開發(fā)技術(shù):

23、軟件工程方法學(xué)軟件工程方法學(xué) 軟件工程開發(fā)過程軟件工程開發(fā)過程 軟件工具和軟件工程環(huán)境軟件工具和軟件工程環(huán)境 v軟件工程管理軟件工程管理: 軟件管理學(xué)軟件管理學(xué) 軟件經(jīng)濟(jì)學(xué)軟件經(jīng)濟(jì)學(xué) 軟件心理學(xué)軟件心理學(xué)49軟件工程方法學(xué)軟件工程方法學(xué)v傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)v面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)v目前流行的方法:目前流行的方法:(1)重量級:重量級:ISO9000,CMM和和RUP(2)輕量級:極限編程輕量級:極限編程(Extreme Programming XP)和敏捷流程和敏捷流程(Agile Process)強(qiáng)調(diào)以過程為中心強(qiáng)調(diào)以過程為中心強(qiáng)調(diào)以人為中心強(qiáng)調(diào)以人為中心50軟件開發(fā)過程v軟件生存周

24、期軟件有一個孕育、誕生、成長、成熟、衰亡軟件有一個孕育、誕生、成長、成熟、衰亡的生存過程。這個過程即為計算機(jī)軟件的生的生存過程。這個過程即為計算機(jī)軟件的生存期。存期。51v軟件生存周期的組成(1)問題定義(2)可行性研究(3)需求分析(4)概要設(shè)計(5)詳細(xì)設(shè)計(6)編碼(7)測試(8)維護(hù)軟件定義軟件開發(fā)運(yùn)行維護(hù)52v問題定義:在問題定義階段,軟件開發(fā)人員應(yīng)該清楚:“要解決什么問題”。v可行性研究:知道了要解決的問題,在這個階段應(yīng)該清楚“用什么辦法解決這個問題”,保證在技術(shù)上、實(shí)效上、法律上都是行得通的。v需求分析:確定軟件的功能和性能。用戶要要清楚開發(fā)出的軟件系統(tǒng)能夠做什么;軟件開發(fā)人員也

25、應(yīng)該清楚用戶的具體要求是什么。53v概要設(shè)計:設(shè)計軟件的總體結(jié)構(gòu),將一個大系統(tǒng)按照功能設(shè)計成小模塊,每個模塊完成一個相對獨(dú)立的小功能。總體設(shè)計有時也稱概要設(shè)計。v詳細(xì)設(shè)計:這個階段還不是編寫程序,是對每個模塊設(shè)計具體的算法和數(shù)據(jù)結(jié)構(gòu),可以包括具體細(xì)節(jié),類似于工程設(shè)計中的施工圖紙。詳細(xì)設(shè)計有時也稱模塊設(shè)計。54v編碼及調(diào)試:這個階段的主要任務(wù)是根據(jù)詳細(xì)設(shè)計的結(jié)果,用一種程序設(shè)計語言,編寫正確的源程序,并且對每段程序進(jìn)行嚴(yán)格測試。要求源程序容易理解、容易維護(hù)。v綜合測試:通過測試使軟件系統(tǒng)達(dá)到用戶的要求。最基本的測試集成測試和驗(yàn)收測試。集成測試是在把模塊聯(lián)結(jié)成系統(tǒng)的過程中,每聯(lián)結(jié)若干個模塊都進(jìn)行必

26、要的測試。驗(yàn)收測試是根據(jù)用戶使用說明書,在用戶的參與下對軟件系統(tǒng)進(jìn)行測試。55v軟件維護(hù):軟件投入運(yùn)行后,通常有四類維護(hù)活動:改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。改正性維護(hù)是糾正軟件中的錯誤;適應(yīng)性維護(hù)是修改軟件讓其適應(yīng)計算機(jī)硬件(或操作系統(tǒng))環(huán)境的變化;完善性維護(hù)是根據(jù)用戶的要求改善或擴(kuò)充功能;預(yù)防性維護(hù)是為將來的維護(hù)做準(zhǔn)備。56軟件工作范圍只考慮只考慮編寫程序編寫程序 涉及整個涉及整個軟件生存軟件生存周期周期擴(kuò)展到擴(kuò)展到57開發(fā)開發(fā)維護(hù)維護(hù)設(shè)計設(shè)計編寫編寫模塊測試模塊測試聯(lián)合測試聯(lián)合測試分析分析58實(shí)際應(yīng)用合同階段合同階段開發(fā)階段開發(fā)階段產(chǎn)品維護(hù)階段產(chǎn)品維護(hù)階段產(chǎn)品市場調(diào)研產(chǎn)品

27、立項(xiàng)申請產(chǎn)品需求規(guī)格產(chǎn)品總體設(shè)計概要/詳細(xì)設(shè)計編碼及文檔單元測試集成測試用戶測試產(chǎn)品化產(chǎn)品發(fā)行產(chǎn)品結(jié)項(xiàng)產(chǎn)品維護(hù)產(chǎn)品個性化修改產(chǎn)品市場部工程部開發(fā)組工程部服務(wù)組用戶測試人員軟件開發(fā)生存周期流程59銷售打單需求分析系統(tǒng)設(shè)計系統(tǒng)開發(fā)系統(tǒng)測試系統(tǒng)實(shí)施售后服務(wù)123456760銷售打單需求分析系統(tǒng)設(shè)計系統(tǒng)開發(fā)系統(tǒng)測試系統(tǒng)實(shí)施售后服務(wù)1234567銷售、售前工程師系統(tǒng)分析師系統(tǒng)架構(gòu)師軟件開發(fā)工程師軟件測試工程師系統(tǒng)實(shí)施工程師售后服務(wù)工程師流程團(tuán)隊(duì)61售前工程師v做什么?(1)是項(xiàng)目開發(fā)人員與業(yè)務(wù)銷售人員的橋梁(2)在業(yè)務(wù)銷售人員眼中,售前人員扮演的是技術(shù)人員或技術(shù)專家的角色(3)在項(xiàng)目實(shí)施中的開發(fā)人員眼中

28、,售前人員是專注技術(shù)的銷售人員(4)在用戶眼中,售前人員,是代表公司技術(shù)水平的技術(shù)專家 62v生活寫照上午寫方案,下午做演講,晚上陪吃飯 63v崗位職責(zé)(1)負(fù)責(zé)組織制定系統(tǒng)集成項(xiàng)目的技術(shù)方案編寫、標(biāo)書的準(zhǔn)備、講解及用戶答疑等工作;(2)配合客戶經(jīng)理完成與用戶的技術(shù)交流、技術(shù)方案宣講、應(yīng)用系統(tǒng)演示等工作; (3)配合業(yè)務(wù)部其它部門做好用戶溝通、資料共享、技術(shù)協(xié)調(diào)等工作; (4)配合市場人員完成應(yīng)用系統(tǒng)演示、產(chǎn)品宣傳資料撰寫等工作; (5)配合做好與合作伙伴廠商的技術(shù)交流。64v專業(yè)技能(1)網(wǎng)絡(luò)(2)服務(wù)器(3)存儲(4)安全(5)系統(tǒng)軟件65v 需要具備的素質(zhì)(1)熟悉自己的產(chǎn)品。(2)具有

29、比較全面技術(shù)專業(yè)知識。熟悉當(dāng)前IT的技術(shù)發(fā)展方向。(3)對本公司的開發(fā)能力、技術(shù)優(yōu)勢、劣勢有比較清楚的認(rèn)識。(4)作為行業(yè)軟件的銷售,必須熟悉本行業(yè)的業(yè)務(wù),對本行業(yè)的信息化的現(xiàn)狀和發(fā)展方向有一定的認(rèn)識,了解行業(yè)中的其它專業(yè)軟件的基本情況。(5)熟悉本行業(yè)的技術(shù)和產(chǎn)品動向,了解同類產(chǎn)品及其競爭對手的情況和特點(diǎn)。(6)能力熟練使用文本和圖形編輯器進(jìn)行方案、標(biāo)書的編寫。(7)熟悉項(xiàng)目招投標(biāo)的一般程序。(8)善于交流,有良好的溝通能力和技巧。66系統(tǒng)分析師v系統(tǒng)分析師就是解決做什么的問題,就是要全面地理解用戶的各項(xiàng)要求,并準(zhǔn)確地表達(dá)所接受的用戶需求67需要具備的素質(zhì)v業(yè)務(wù)知識v善于交流,有良好的溝通能

30、力和技巧v過硬的計算機(jī)軟件開發(fā)技術(shù)68系統(tǒng)架構(gòu)師v架構(gòu)分為兩種,(1)第一種是基礎(chǔ)架構(gòu)的設(shè)計規(guī)劃,例如:OS,硬件,網(wǎng)絡(luò),各種應(yīng)用服務(wù)器等等。(2)第二種是軟件開發(fā)設(shè)計的架構(gòu)師,他們負(fù)責(zé)規(guī)劃程序的運(yùn)行模式,層次結(jié)構(gòu),調(diào)用關(guān)系,規(guī)劃具體的實(shí)現(xiàn)技術(shù)類型,甚至配合整個團(tuán)隊(duì)做好軟件開發(fā)中的項(xiàng)目管理。69v崗位職責(zé)(1)理解系統(tǒng)的業(yè)務(wù)需求,制定系統(tǒng)的整體框架(包括:技術(shù)框架和業(yè)務(wù)框架);(2)對系統(tǒng)框架相關(guān)技術(shù)和業(yè)務(wù)進(jìn)行培訓(xùn),指導(dǎo)開發(fā)人員開發(fā)。并解決系統(tǒng)開發(fā)、運(yùn)行中出現(xiàn)的各種問題70軟件開發(fā)工程師v應(yīng)用軟件開發(fā),如:企業(yè)ERPv系統(tǒng)軟件開發(fā),如:驅(qū)動程序,防火墻,操作系統(tǒng),殺毒軟件等v網(wǎng)站開發(fā),如:新浪

31、,淘寶類似網(wǎng)站的開發(fā)v移動開發(fā),如:iPhone,Andriod等。71軟件開發(fā)工程師v具備的素質(zhì)(1)專業(yè)素質(zhì):至少熟悉一門編程語言,一種開發(fā)平臺,一種數(shù)據(jù)庫,良好的程序設(shè)計思想。(2)綜合素質(zhì):為人講誠信、踏實(shí)、認(rèn)真,有鉆研精神,工作效率高,精力充沛,良好的溝通能力和團(tuán)隊(duì)協(xié)作精神; 72軟件測試工程師v軟件測試的目的A:證明軟件是有問題的:證明軟件是有問題的B:證明軟件是沒有問題的:證明軟件是沒有問題的73溝通能力溝通能力移情能力移情能力技術(shù)能力技術(shù)能力自信心自信心外交能力外交能力幽默感幽默感很強(qiáng)的記憶力很強(qiáng)的記憶力耐心耐心懷疑精神懷疑精神洞察力洞察力4523671089111自我督促自我

32、督促74軟件實(shí)施工程師v軟件實(shí)施工程師的工作是軟件產(chǎn)品服務(wù)主線的一個決定性環(huán)節(jié),軟件的成功離不開實(shí)施。那什么才是成功的實(shí)施呢?要讓用戶真正使用起來,讓用戶滿意,用戶的成功也就是軟件的成功。軟件的實(shí)施,其實(shí)并不是一件看起來很容易的事,也許可算是一項(xiàng)挑戰(zhàn),有時還需要工程師們一種“明知山有虎,偏向虎山行”的信心和勇氣。75v工作內(nèi)容負(fù)責(zé)工程實(shí)施: 包括常用操作系統(tǒng)、應(yīng)用軟件及公司所開發(fā)的軟件安裝、調(diào)試、定制開發(fā)及維護(hù),還有少部分硬件、網(wǎng)絡(luò)的工作; 負(fù)責(zé)現(xiàn)場培訓(xùn): 現(xiàn)場軟件應(yīng)用培訓(xùn); 協(xié)助項(xiàng)目驗(yàn)收; 負(fù)責(zé)需求的初步確認(rèn); 負(fù)責(zé)項(xiàng)目維護(hù)。 76Windows Linux Unix Solaris AIX

33、 服務(wù)器 IBM HP 網(wǎng)絡(luò) Cisco 華為 Oracle SQL Server DB2 WebSphere WebLogic JBoss IIS應(yīng)用軟件 77售后服務(wù)工程師v在軟件或硬件方向從事售后技術(shù)維護(hù)、應(yīng)用培訓(xùn)、升級管理、解決投訴,提升客戶滿意度,擴(kuò)大用戶群體對自有品牌的良好口碑。成為一名專業(yè)的技術(shù)支持工程師在企業(yè)里工作至少要3年以上,這樣對企業(yè)的產(chǎn)品線,用戶群體就會有一個全面的了解。 78軟件開發(fā)模型v軟件開發(fā)模型是軟件開發(fā)全部過程、活動和任務(wù)的結(jié)構(gòu)框架結(jié)構(gòu)框架。它能直觀表達(dá)軟件開發(fā)全過程,明確規(guī)定要完成的主要活動、任務(wù)和開發(fā)策略。 軟件開軟件開發(fā)模型發(fā)模型也常稱為: 軟件過程模型

34、 軟件生存周期模型 軟件工程范型79軟件開發(fā)模型分類v瀑布模型v原型模型v增量模型v螺旋模型v噴泉模型80瀑布模型(Waterfall Model)可行性研究與計劃可行性研究與計劃需求分析需求分析設(shè)計設(shè)計編碼編碼運(yùn)行維護(hù)運(yùn)行維護(hù)測試測試定義定義階段階段開開發(fā)發(fā)階階段段維護(hù)階段維護(hù)階段81瀑布模型軟件開發(fā)的特點(diǎn)v階段間具有順序性和依賴性的觀點(diǎn)。v每個階段必須完成規(guī)定的文檔;每個階段結(jié)束前完成文檔審查82瀑布模型的優(yōu)點(diǎn)v軟件生命周期模軟件生命周期模型型,使軟件開發(fā)過程可以在分析、使軟件開發(fā)過程可以在分析、設(shè)計、編碼、測試和維護(hù)的框架下進(jìn)行;設(shè)計、編碼、測試和維護(hù)的框架下進(jìn)行;v軟件開發(fā)過程具有軟件

35、開發(fā)過程具有系統(tǒng)性系統(tǒng)性、可控性可控性,克服了軟件開克服了軟件開發(fā)的隨意性發(fā)的隨意性 。83瀑布模型的缺點(diǎn)v項(xiàng)目開始階段用戶項(xiàng)目開始階段用戶很難精確的提出產(chǎn)品需求很難精確的提出產(chǎn)品需求,由于,由于技術(shù)進(jìn)步,用戶對系統(tǒng)深入的理解,修改需求十分技術(shù)進(jìn)步,用戶對系統(tǒng)深入的理解,修改需求十分普遍。普遍。v項(xiàng)目開發(fā)晚期才能得到程序的運(yùn)行版本,這時修改項(xiàng)目開發(fā)晚期才能得到程序的運(yùn)行版本,這時修改軟件需求和開發(fā)中的錯誤代價很大。軟件需求和開發(fā)中的錯誤代價很大。v采用線性模型組織項(xiàng)目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員采用線性模型組織項(xiàng)目開發(fā)經(jīng)常發(fā)生開發(fā)小組人員“堵塞狀態(tài)堵塞狀態(tài)”,特別是項(xiàng)目的開始和結(jié)束。特別是項(xiàng)目的開

36、始和結(jié)束。84實(shí)際的瀑布模型需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計驗(yàn)證編碼測試綜合測試維護(hù)需求分析驗(yàn)證反饋線開發(fā)過程維護(hù)過程實(shí)線箭頭表示開發(fā)過程;實(shí)線箭頭表示開發(fā)過程;虛線箭頭表示維護(hù)過程虛線箭頭表示維護(hù)過程。85v瀑布模型的應(yīng)用需求清晰,且小型的團(tuán)隊(duì)開發(fā),整個開發(fā)團(tuán)隊(duì)沒有明確的分工。每個成員都參與從需求、設(shè)計、編碼、測試的過程。86快速原型模型v軟件開發(fā)人員與用戶一起進(jìn)行需求分析,進(jìn)行快速設(shè)計,建造原型,原型由用戶評估,進(jìn)步修改原型,再次進(jìn)行設(shè)計。迭代這個過程,逐步使原型滿足用戶需要。87原型開發(fā)用戶測試用戶測試運(yùn)行原型運(yùn)行原型建造建造/ /修改修改 原型原型 聽取用聽取用 戶意見戶意見88 初 步

37、需 求初 步 需 求分析分析 快速設(shè)計快速設(shè)計 建造原型建造原型 用戶評估原用戶評估原型(新需求)型(新需求) 對原型加工對原型加工 開發(fā)產(chǎn)品開發(fā)產(chǎn)品 開始開始 結(jié)束結(jié)束 89v 優(yōu)點(diǎn)(1)原型模型原型模型支持軟件需求開發(fā)支持軟件需求開發(fā),幫助用戶和開發(fā)人員,幫助用戶和開發(fā)人員理解需求,是軟件需求工程的關(guān)鍵。理解需求,是軟件需求工程的關(guān)鍵。(2)它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。它產(chǎn)生的正式需求文擋,是軟件開發(fā)的基礎(chǔ)。(3)如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的程如果開發(fā)的原型是可運(yùn)行的,它的若干高質(zhì)量的程序片段和開發(fā)工具可用于工作程序的開發(fā)。序片段和開發(fā)工具可用于工作程序的開發(fā)。(

38、4)原型的開發(fā)和評審是系統(tǒng)分析員和用戶原型的開發(fā)和評審是系統(tǒng)分析員和用戶/客戶共同客戶共同參予的迭代過程,每個迭代循環(huán)都是線性過程。參予的迭代過程,每個迭代循環(huán)都是線性過程。90v缺點(diǎn):缺點(diǎn):(1)(1)對于對于大型軟件項(xiàng)目大型軟件項(xiàng)目,原型模型原型模型需要足夠的人力需要足夠的人力資源以建立足夠的資源以建立足夠的原型原型組。組。(2)(2)原型模型原型模型要求開發(fā)者和客戶在一段時間內(nèi)共同要求開發(fā)者和客戶在一段時間內(nèi)共同完成完成原型原型系統(tǒng)的開發(fā),系統(tǒng)的開發(fā),如果任何一方?jīng)]有實(shí)現(xiàn)承諾如果任何一方?jīng)]有實(shí)現(xiàn)承諾,會導(dǎo)致,會導(dǎo)致原型原型開發(fā)的失敗開發(fā)的失敗。(3)(3)如果系統(tǒng)難以模塊化,建造如果系統(tǒng)

39、難以模塊化,建造原型原型所需構(gòu)件就有所需構(gòu)件就有問題;如果問題;如果高性能高性能是一個指標(biāo),是一個指標(biāo),原型模型原型模型也可能不也可能不奏效。奏效。(4)(4)原型模型原型模型不適合采用很多新技術(shù)不適合采用很多新技術(shù)的項(xiàng)目的項(xiàng)目91v快速原型模型的應(yīng)用(1)用戶對自己的需求也不是很明確。(2)項(xiàng)目只能是中小型。(3)開發(fā)方和用戶的關(guān)系一定要密切。92增量模型增量模型v增量模型即漸增模型,使用增量模型開發(fā)軟件時,把軟件產(chǎn)品構(gòu)件來設(shè)計、編碼、集成和測試。v每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能夠完成特定的功能。93需求分析需求分析驗(yàn)證驗(yàn)證規(guī)格說明規(guī)格說明驗(yàn)證驗(yàn)證概要設(shè)計概要設(shè)計驗(yàn)證驗(yàn)證針對每個構(gòu)件,完成針對每個構(gòu)件,完成詳細(xì)設(shè)計、編碼和集詳細(xì)設(shè)計、編碼和集成,經(jīng)測試后交付給成,經(jīng)測試后交付給用戶用戶維護(hù)維護(hù)增量模型增量模型94v把軟件產(chǎn)品分解成增量構(gòu)件時,應(yīng)該使v分解時必須遵守的約束條件是v瀑布模型或快速原型模型的目標(biāo)是就把一個滿足需求的產(chǎn)品提交給用戶。v增量模型分批地向用戶提交產(chǎn)品,開發(fā)人員向

溫馨提示

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

評論

0/150

提交評論