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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、:新的驅動力”! 8vNaisbitt 1982 人類社會將人類社會將“從工業(yè)社會向信息社會轉變從工業(yè)社會向信息社會轉變”vFeigenbaum 1983 計算機控制的信息和知識將成為計算機控制的信息和知識將成為20世紀表現(xiàn)能力世紀表現(xiàn)能力的焦點的焦點vStoll 1989 網絡和軟件產生的網絡和軟件產生的“電子社會電子社會”是實現(xiàn)全球知識交是實現(xiàn)全球知識交流的關鍵。流的關鍵。9二十年后的現(xiàn)實v計算機的發(fā)展與普及計算機的發(fā)展與普及v計算機軟件的發(fā)展與普及計算機軟件的發(fā)展與普及v計算機網絡的發(fā)展與普及計算機網絡的發(fā)展與普及因為普及了計算機、軟件和網絡因為普及了計算機、軟件和網絡迎來了信息化社會和

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

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

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

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

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

9、手能力加強交流與動手能力17兩個上升u轉變對軟件的認識轉變對軟件的認識 上升上升 程序程序 系統(tǒng)系統(tǒng)u 轉變思維定式轉變思維定式 上升上升 程序員程序員 系統(tǒng)工程師系統(tǒng)工程師( (系統(tǒng)分析員系統(tǒng)分析員) )18軟件危機v軟件的發(fā)展史v什么是軟件v軟件的特點v軟件危機19v1946年到60年代初 程序設計時期主要采用批處理技術,沒有任何其它形式的文檔資料保留下來,開發(fā)出的程序根本無法維護。v20世紀60年代初到70年代初 程序系統(tǒng)時期程序的規(guī)模已經很大,需要多人分工協(xié)作,軟件的開發(fā)方式由“個體生產”發(fā)展到了“軟件作坊”??墒恰败浖鞣弧被旧涎赜昧塑浖l(fā)展早期所形成的個體化的開發(fā)方式,軟件的開發(fā)

10、與維護費用以驚人的速度增加。許多軟件產品根本不能維護,最終導致出現(xiàn)了嚴重的“軟件危機”20v20世紀70年代中期至80年代中期 軟件工程時期軟件的開發(fā)以工程化的思想為指導,用工程化的原則、方法和標準來開發(fā)和維護軟件。v20世紀80年代中期至今 面向對象時期面向對象軟件開發(fā)技術在迅速取代傳統(tǒng)軟件工程開發(fā)方法。21 早期早期 第二階段第二階段 第三階段第三階段 第四階段第四階段面向批處理面向批處理 多用戶多用戶 分布式系統(tǒng)分布式系統(tǒng) 強大的桌面系統(tǒng)強大的桌面系統(tǒng)有限的分布有限的分布 實時實時 嵌入嵌入“智能智能” 面向對象技面向對象技術術自定義軟件自定義軟件 數據庫數據庫 低成本硬件低成本硬件 專

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

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

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

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

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

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

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

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

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

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

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

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

23、軟件工程方法學軟件工程方法學 軟件工程開發(fā)過程軟件工程開發(fā)過程 軟件工具和軟件工程環(huán)境軟件工具和軟件工程環(huán)境 v軟件工程管理軟件工程管理: 軟件管理學軟件管理學 軟件經濟學軟件經濟學 軟件心理學軟件心理學49軟件工程方法學軟件工程方法學v傳統(tǒng)方法學傳統(tǒng)方法學v面向對象方法學面向對象方法學v目前流行的方法:目前流行的方法:(1)重量級:重量級:ISO9000,CMM和和RUP(2)輕量級:極限編程輕量級:極限編程(Extreme Programming XP)和敏捷流程和敏捷流程(Agile Process)強調以過程為中心強調以過程為中心強調以人為中心強調以人為中心50軟件開發(fā)過程v軟件生存周

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論