版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件及軟件工程李俊提綱軟件定義軟件開展史軟件危機軟件工程軟件工程根本原理軟件工程涉及人員何為軟件軟件當它被執(zhí)行時提供希望的功能和性能的指令〔計算機程序〕使得程序能夠適當?shù)夭僮餍畔⒌臄?shù)據(jù)結(jié)構(gòu)描述程序的操作和使用的文檔軟件特征了解軟件與人類建造的其他事物的區(qū)別軟件是被開發(fā)或設計的,而不是傳統(tǒng)意義上被制造的人的創(chuàng)造性工作〔分析、設計、建造、測試〕轉(zhuǎn)化成有形的形式軟件不會“磨損”軟件產(chǎn)業(yè)正在向基于構(gòu)件的組裝化前進,但大多數(shù)軟件仍然是定制的硬件磨損趨勢軟件磨損趨勢故障數(shù)時間故障數(shù)時間磨合補丁軟件分類系統(tǒng)軟件商業(yè)軟件工程和科學計算軟件嵌入式軟件個人計算機軟件基于Internet的軟件人工智能軟件分布式軟件云……注意區(qū)分軟件系統(tǒng)僅僅是信息系統(tǒng)的一局部軟件過程是企業(yè)業(yè)務過程的一局部企業(yè)身處社會環(huán)境之下業(yè)務環(huán)境企業(yè)信息系統(tǒng)軟件系統(tǒng)提綱軟件定義軟件開展史軟件危機軟件工程軟件工程根本原理軟件工程涉及人員分類方法早期:面向批處理,有限分布,自定義,個體軟件,軍工和科研二:多用戶,實時、數(shù)據(jù)庫,軟件產(chǎn)品和軟件作坊,商務三:分布式系統(tǒng),嵌入、智能、低本錢硬件技術,消費者有影響,個人應用四:強大的桌面系統(tǒng),豐富的網(wǎng)絡系統(tǒng),面向?qū)ο蠹夹g,專家系統(tǒng),人工神經(jīng)網(wǎng)絡,并行計算,娛樂4050607080902000早期二三四2010軟件開展40~50年代處理機器碼,軟件開發(fā)又稱程序編寫用途:科學計算或軍事有關的計算目的:確定計算機硬件的工作序列開發(fā)方法:單獨設計,全球約500人開展:匯編語言技術突破對時間-空間的關系認識提高,用存儲器代替計算機硬件的邏輯功能軟件開展40~50年代迭代——反復使用的子程序的利用,不僅是依靠硬件組合資金->時間的轉(zhuǎn)變,突破運算速度和存儲容量的限制理論馮.諾伊曼,存儲程序圖靈,圖靈測試程序的質(zhì)量完全依賴于個人的技巧,要求程序能執(zhí)行,執(zhí)行快,有結(jié)果軟件開展50-60年代使用符號語言和高級語言編程用途擴大到商業(yè)目的:確定軟件人員定義的動作序列開發(fā)方法,功能性開發(fā),調(diào)試用dump認識到軟件應獨立于硬件非數(shù)值運算功能得到開展軟件危機出現(xiàn)軟件開展50-60年代理論成就提出軟件工程,意識到大型軟件的開發(fā)工作與熟知的建設工程類似結(jié)構(gòu)化編程思想目標擴大程序系統(tǒng)的規(guī)模,適應更復雜的應用為客戶作程序軟件開展70年代程序設計:=數(shù)據(jù)結(jié)構(gòu)+算法用途更廣程序員的主要精力集中在選擇和開展主要數(shù)據(jù)結(jié)構(gòu)及相應算法開發(fā)方法從程序中別離出算法和數(shù)據(jù)結(jié)構(gòu)DonaldErvin
Knuth,高德納《計算機程序設計藝術》結(jié)構(gòu)化設計方法開展成結(jié)構(gòu)化開發(fā)方法分析和設計方法軟件開展70年代認識空間、時間復雜度的平衡,算法復雜性及度量復雜問題不再強調(diào)過分的技巧狀況數(shù)據(jù)獨立的概念,數(shù)據(jù)可脫離系統(tǒng)而存在并發(fā)訪問的執(zhí)行機制認識到狀態(tài)的重要性軟件開展70年代突破數(shù)據(jù)結(jié)構(gòu)和算法從程序中別離,容易學習編程經(jīng)驗,根本解決編程方法和邏輯技巧問題開展了各種語言Pascal,Smalltalk,Prolog對系統(tǒng)軟件和應用軟件進行區(qū)分完整的軟件系統(tǒng)=可執(zhí)行系統(tǒng)+數(shù)據(jù)狀態(tài)+系統(tǒng)成就數(shù)據(jù)結(jié)構(gòu)和算法形式方法——用推理和邏輯斷言驗證程序正確軟件工程方法提出,瀑布模型及相關方法軟件開展70年代目標解決軟件危機要求在時間、費用和質(zhì)量三個要求下完成工程管理問題得到重視軟件開展80年代對象大型復雜的軟件系統(tǒng)用途數(shù)據(jù)庫應用系統(tǒng)開發(fā)方法單純的編程技術轉(zhuǎn)向構(gòu)造系統(tǒng)的方法技術管理軟件開展80年代認識軟件系統(tǒng)的生命周期,維護的重要性從軟件生命周期的總費用和總價值來決定軟件開發(fā)采用的方案注重團隊的協(xié)作各地開始研究軟件工程突破c/s結(jié)構(gòu)成就關系數(shù)據(jù)庫軟件度量問題,Cocomo模型軟件過程改進模型CMM軟件開展90年代處理對象Internet&Multimedia計算機使用方式的改變開發(fā)方法基于部件認識獨立完整系統(tǒng)的缺乏強調(diào)集成和演進,可適應性軟件體系結(jié)構(gòu)反映了系統(tǒng)的非功能性需求軟件開展90年代計算機領域的特殊性,總結(jié)和復用設計經(jīng)驗目標管理過程管理,認識到獲得普適性的軟件開發(fā)理論是不可能的,從而追求軟件過程改進成就設計模式體系結(jié)構(gòu)圖靈模型交互模型軟件開展21世紀大型/超大型軟件協(xié)同軟件集群系統(tǒng)和軟件基于網(wǎng)絡交互技術無處不在bug的術語故障(fault):當人們在進行軟件開發(fā)活動的過程中出現(xiàn)錯誤(error),將產(chǎn)生故障失效(failure):系統(tǒng)違背了它應有的行為什么是好的軟件關于質(zhì)量的定義,不同視角結(jié)果不同:先驗論的觀點:質(zhì)量是可認知而不能定義的用戶的觀點:質(zhì)量是恰好到達目的制造業(yè)的觀點:質(zhì)量是與規(guī)格說明的一致產(chǎn)品的觀點:質(zhì)量是與產(chǎn)品的內(nèi)在特征相聯(lián)系的基于價值的觀點:質(zhì)量取決于客戶愿意支付的金額什么是好的軟件(續(xù))好的軟件過程必須包含產(chǎn)生高質(zhì)量軟件的策略有組織的質(zhì)量承諾為原那么質(zhì)量的6個特性:功能性、可靠性、易使用性、效率、易維護性和易移植性3種方式考慮質(zhì)量產(chǎn)品的質(zhì)量生產(chǎn)該產(chǎn)品的過程的質(zhì)量產(chǎn)品將使用的商業(yè)環(huán)境背景下產(chǎn)品的質(zhì)量產(chǎn)品的質(zhì)量用戶從外部特性進行評價〔故障數(shù)目和故障類型等〕設計和編碼人員考慮產(chǎn)品的內(nèi)部特性〔如故障類型〕不同觀點具有不同的判據(jù),從而需要質(zhì)量模型將用戶的觀點和設計人員的觀點聯(lián)系起來MaCall質(zhì)量模型McCall質(zhì)量模型提綱軟件定義軟件開展史軟件危機軟件工程軟件工程根本原理軟件工程涉及人員軟件危機表現(xiàn)歷史方面經(jīng)濟方面維護方面需求、分析和設計方面團隊沒有方案沒有測試沒有文檔失敗軟件的例子0元賬單平安問題蠕蟲推遲與超預算丹佛國際機場延期且超預算WarGames,美國戰(zhàn)略空軍收到計算機系統(tǒng)發(fā)出的蘇聯(lián)向美國發(fā)射導彈…延遲交付1984年,2億美元的系統(tǒng)開發(fā)18個月后,又花了3年時間修改。不必要的復雜性MDC-17超預算5億,包括19臺機載計算機、80個微處理器、6種語言IBM360操作系統(tǒng)17個IBM的研究單位700多人,歷時4年多,總耗時5000多人年,2.5億多丹佛機場甲方:經(jīng)驗豐富,需求明確乙方:全球完成過類似70個工程的頂尖公司黃金伙伴的公司,完全可控的軟件失敗了!1991.12,美聯(lián)航承租2號航站樓,BAE設計和建設自動化行李處理系統(tǒng),預計2.5年完成1992.3,BAE為全機場承建自動化行李處理系統(tǒng),并預見了風險1992年3月,BAE公司大型系統(tǒng)故障例如系統(tǒng)最低費用估計($M)美國礦產(chǎn)部系統(tǒng)15美利堅銀行65聯(lián)航訂票系統(tǒng)145美海軍自動財務系統(tǒng)446先進后勤系統(tǒng)490聯(lián)合教育與軟件公司650美空軍B-1BEW系統(tǒng)1200(1962-)英國獵迷反潛機2200(1964-1968)FBI虛擬案例檔案系統(tǒng)170(2000-2005)軟件問題統(tǒng)計11983年統(tǒng)計發(fā)布的軟件10%按經(jīng)費完成15%按時完成70%實現(xiàn)了要求的功能2002年統(tǒng)計,CutterConsortium統(tǒng)計78%的IT機構(gòu)卷入糾紛并以訴訟結(jié)束67%交付軟件沒有到達開發(fā)者聲稱的性能或功能56%承諾交付日期推遲45%的產(chǎn)品錯誤非常嚴重以致無法運行軟件問題統(tǒng)計22004年,StandishGroup分析了9236個軟件工程經(jīng)濟方面采用新技術還是不革新考慮Tnew和ToldTnew花費時間減少10%,采用否?Tnew考慮Tnew的引入費用Tnew的維護費用將來開發(fā)采用Tnew還是Told?工程領域,提倡保守不做第一個吃螃蟹的人4GL軟件工程7原理之4如何取舍?維護方面Lientz等1978年統(tǒng)計而Linux內(nèi)核和gcc編譯器的實際維護數(shù)據(jù)說明:至少50%交付后維護是糾錯性的。Microsoft每月的Patch?維護本錢1976-1981年間統(tǒng)計1992-1998年間統(tǒng)計再看Tnew的可行性不同時期糾錯的代價錯誤來源Boehm1979年統(tǒng)計較大型工程的錯誤中,60-70%來自于需求、分析和設計最新審查結(jié)果需求、分析和設計中的錯誤仍占大比例軟件危機軟件編寫從個體化軟件作坊,但開發(fā)方法還是個體式的。程序的維護工作在整個計算機系統(tǒng)中的比重越來越大。許多個體化軟件變得無法維護;大型軟件的開發(fā)本錢急劇上升,質(zhì)量得不到保證。60年代中期到70年代中期,軟件危機提出軟件危機軟件危機是軟件開發(fā)和維護中遇到的一系列問題:軟件不能工作;如何開發(fā)軟件,如何維護軟件原因自身特點:復雜,故障難檢測、工作量難估計,本錢增長無法控制開發(fā)方法不當軟件工程1968年Nato的科學委員會提出“軟件工程”指導科學地開發(fā)軟件、制作軟件產(chǎn)品、集成計算機系統(tǒng),以降低本錢、提高質(zhì)量、符合進度要求軟件本錢提綱軟件定義軟件開展史軟件危機軟件工程軟件工程根本原理軟件工程涉及人員軟件如何生產(chǎn)?建筑工程生產(chǎn)流程分階段、按部就班軟件工程定義軟件工程師計算機科學的一個領域,研究如何構(gòu)建非常龐大或非常復雜的軟件系統(tǒng),該系統(tǒng)往往需要一個或多個軟件工程師團隊來開發(fā)。軟件工程是指導計算機軟件開發(fā)和維護的工程學科。IEEE1990:對軟件開發(fā)、運作、維護的系統(tǒng)化的、有紀律的、可定量的方法之應用IEE93將系統(tǒng)化的、標準的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中;上述方法的研究。另一個角度看軟件工程問題求解軟件問題多為大型且復雜解決方法:分析和綜合分析將問題分解為可以理解的小的局部抽象能力和關鍵綜合小的模塊組合成大的結(jié)構(gòu)創(chuàng)作過程很有挑戰(zhàn)分析工程——大事化小、分而治之綜合過程——遣詞造句解決問題方法(method)/技術(technology)產(chǎn)生某些結(jié)構(gòu)的形式化過程工具(tool)以更好的方式完成某件事情的設備或自動化系統(tǒng)過程(procedure)將工具和方法結(jié)合起來共同產(chǎn)生特定產(chǎn)品范型(paradigm)構(gòu)造軟件的特定方法或哲學軟件工程研究內(nèi)容的層次結(jié)構(gòu)質(zhì)量過程方法工具軟件工程的根底是軟件過程過程是將技術層結(jié)合在一起過程定義了一組關鍵過程區(qū)域,這是軟件工程的管理控制根底,建立了語境,規(guī)定了技術方法的采用、工程產(chǎn)品的產(chǎn)生、里程碑的建立、質(zhì)量的保證和變化的適當管理方法提供了建造軟件在技術上“如何做”覆蓋了系列任務:需求分析、設計、編程、測試和維護等方法依賴于一組原那么工具對過程和方法提供了自動或半自動的支持CASE軟件工程焦點進度功能成本成功開發(fā)生命周期建模語言工程工具項目計劃過程管理軟件工程5要素提綱軟件定義軟件開展史軟件危機軟件工程軟件工程根本原理軟件工程涉及人員指導性原那么軟件需求的變動性采取適當措施來保證結(jié)果產(chǎn)品能滿足用戶需求要考慮模塊化、抽象和信息隱蔽、局部化、一致性等穩(wěn)妥地設計方法將大大方便軟件開發(fā)軟件工具和環(huán)境對軟件設計的支持來說,極其重要質(zhì)量和經(jīng)濟開銷直接取決于對它提供的支撐的質(zhì)量和效用有效的軟件工程只有在對軟件過程進行有效管理的情況下才能實現(xiàn)兩個規(guī)那么(7,2)規(guī)那么80-20規(guī)律軟件工程的7條根本原理Boehm1983提出,確保軟件產(chǎn)品質(zhì)量和開發(fā)效率的原理的最小集合用分階段的生命周期方案嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設計技術結(jié)果應能清楚地審查開發(fā)小組的人員應該少而精成認不斷改進軟件工程實踐的必要性軟件工程的精髓軟件系統(tǒng)比企業(yè)信息系統(tǒng)的范圍小軟件過程是業(yè)務過程的一局部軟件工程不同于傳統(tǒng)工程軟件工程不只是程序設計軟件工程需要建模軟件系統(tǒng)是復雜的企業(yè)信息系統(tǒng)信息系統(tǒng)涉及人員數(shù)據(jù)過程軟件硬件通信業(yè)務環(huán)境企業(yè)信息系統(tǒng)軟件系統(tǒng)不同管理層次的軟件業(yè)務過程需要效果軟件過程只提供效率,為業(yè)務增值提供產(chǎn)品和效勞例:軟件系統(tǒng)效勞于單一的管理層次高利潤產(chǎn)品背后的規(guī)那么和事實,知識庫訂單趨勢,聯(lián)機分析處理訂單與發(fā)票,聯(lián)機事務處理戰(zhàn)略管理知識系統(tǒng)知識庫戰(zhàn)術管理聯(lián)機分析處理系統(tǒng)數(shù)據(jù)倉庫運作管理聯(lián)機事務處理數(shù)據(jù)庫業(yè)務價值自動化程度軟件工程的精髓軟件系統(tǒng)比企業(yè)信息系統(tǒng)的范圍小軟件過程是業(yè)務過程的一局部軟件工程不同于傳統(tǒng)工程軟件工程不只是程序設計軟件工程需要建模軟件系統(tǒng)是復雜的通信復雜性增加接口降低復雜性軟件工程取得了哪些進展理論上多種模型、多種方法等等,目前已著重考慮軟件過程、軟件集成幫助我們更快、更有效的完成任務字處理等、multimedia等醫(yī)學、農(nóng)業(yè)、交通等多媒體教育、機器人等據(jù)統(tǒng)計,軟件工程提高了軟件生產(chǎn)效率生產(chǎn)率增加2.3倍;過程改進中的每1美元都有7.7美元的回報生產(chǎn)率提高6.35倍軟件工程遠未完美,也不可能完美計算機科學與軟件工程的關系軟件工程涉及的人員客戶(Customer)為將要開發(fā)的軟件系統(tǒng)支付費用的公司、組織或個人用戶(User)實際使用軟件系統(tǒng)的人開發(fā)人員(Developer)為客戶構(gòu)建軟件系統(tǒng)的公司、組織或個人包括各種人員:開發(fā)、測試和管理人員軟件工程涉及的人員開發(fā)團隊的成員分析員與客戶一起確定系統(tǒng)的需求設計人員生成所要設計系統(tǒng)的系統(tǒng)層描述;程序員編寫實現(xiàn)制定需求的代碼測試人員通過一定的方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度幼兒園大班工作計劃范文
- 2025年秋季學期幼兒園大班教學工作計劃
- 汽車拉索相關行業(yè)投資方案
- 2025幼兒園英語高效工作計劃范文
- 2025年國際禁毒日宣傳活動工作計劃
- 財務工作總結(jié)與經(jīng)驗分享
- 2025年數(shù)學工作計劃
- 2025年英語學習計劃表
- 2025年秘書工作計劃范本2
- 2025年希望小學學校工作計劃
- 中國食物成分表2018年(標準版)第6版
- 植樹問題專項講義(五大類型+方法+練習+答案)六年級數(shù)學小升初總復習
- 二年級上冊數(shù)學豎式計算300道帶答案
- 組織學與胚胎學課程教學大綱
- 玻璃硝酸鉀加硬工藝
- 蘇教版五年級上冊數(shù)學簡便計算大全500題及答案
- 珠海金灣區(qū)2023-2024學年七年級上學期期末數(shù)學達標卷(含答案)
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學年七年級上學期期末歷史試題
- 《輸電線路防雷保護》課件
- 《中國八大菜系》課件
- 高級會計師 案例分析第五章 企業(yè)成本管理
評論
0/150
提交評論