




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件系統(tǒng)開發(fā)所面臨的挑戰(zhàn)§-----軟件§-----挑戰(zhàn)§-----方法§-----測試9/14/20231§-----軟件9/14/20232什么是軟件軟件的特點軟件的發(fā)展一、什么是軟件軟件
是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。程序
是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列。數(shù)據(jù)
是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔
是與程序開發(fā)、維護和使用有關(guān)的圖文材料。9/14/20233二、軟件的特點軟件具有抽象性。因為它是一種邏輯實體,而不是具體的物理實體。軟件是開發(fā)或工程化而形成的。而不是傳統(tǒng)意義上的制造產(chǎn)生的。軟件不會磨損。9/18/20234故障率曲線故障率時間軟件的故障率曲線故障率時間軟件的故障率曲線故障率時間硬件的故障率曲線9/18/20235理想曲線實際曲線軟件是自定義的。他不能通過已有的構(gòu)件組裝而來。軟件對計算機系統(tǒng)有一定的依賴性。其開發(fā)和運行常受到計算機系統(tǒng)的限制。軟件成本昂貴9/18/20236軟件本身是復(fù)雜的實際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性例1
Windows95程序超過1000萬行例2
軍事和控制系統(tǒng)項目,3500多人花費了幾年時間,交付后相繼發(fā)現(xiàn)了100個錯誤,最后以失敗告終。9/18/20237軟件的投入費用越來越高9/18/20238三、軟件的發(fā)展過程程序設(shè)計階段程序系統(tǒng)階段軟件工程階段9/18/20239—
50至60年代—
60至70年—
70年代以后計算機50年的發(fā)展早期 第二代 第三代 第四代多用戶
分布式系統(tǒng)實時
嵌入“智能”桌面系統(tǒng)面向?qū)ο蠹济嫦蚺幚碛邢薜姆植夹g(shù)自定義軟件數(shù)據(jù)庫軟件產(chǎn)品低成本硬件消費者的影響專家系統(tǒng)人工神經(jīng)網(wǎng)絡(luò)并行計算19501960小規(guī)模程序1980微處理器網(wǎng)絡(luò)計算機1990
2000網(wǎng)絡(luò)1970軟件作坊軟件產(chǎn)品9/18/202310發(fā)展帶來的新問題:硬件的發(fā)展超過軟件發(fā)展;集成度18個月翻一翻,計算速度、存儲容量成倍增長,成本每10年遞減兩位數(shù)。制作軟件的能力和速度與需求不適應(yīng);計算機的應(yīng)用依賴于可靠的軟件,軟件失敗將造成巨大經(jīng)濟損失;已有的軟件難以維護。2023/9/1811§-----挑戰(zhàn)外國軟件滲透軟件開發(fā)投資力度不足軟件侵權(quán)行為軟件人才結(jié)構(gòu)不合理,缺乏高級系統(tǒng)程序員和項目負責(zé)人。軟件人員缺乏軟件工程化的概念。2023/9/1812軟件已經(jīng)從特定的問題解決和信息分析工具演化為一門獨立的產(chǎn)業(yè)!需要解決的新問題:——軟件危機!2023/9/1813軟件危機9/18/202314什么是軟件危機產(chǎn)生危機的原因一、什么是軟件危機例:
IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。......據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果。......9/18/202315項目負責(zé)人F.
D.
Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時說:“...正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。...程序設(shè)計工作正像這樣一個泥潭,...一批批程序員被迫在泥潭中拼命掙扎,...誰也沒有料到問題竟會陷入這樣的困境...”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項目的典型事例為人們所記取。9/18/202316問題出在哪里?項目沒有被很好地理解;計劃不周,最終導(dǎo)致進度拖延;文檔資料不充分,使人與人的交流變得比寫程序困難得多;缺少度量軟件可靠性(reliability)
的標準,質(zhì)量無法保證;軟件難以維護(maintainability)
,
不易升級(evolvability);9/18/202317必須意識到:軟件 編程9/18/202318軟件系統(tǒng)的開發(fā)與建造高樓大廈、制造飛機導(dǎo)彈同理,需要工程化方法和工具9/18/202319二、軟件危機的主要特征對軟件開發(fā)的成本和進度估計常常不準確;用戶對“已完成的”軟件系統(tǒng)不滿意;軟件質(zhì)量不可靠;軟件系統(tǒng)常常不可維護;軟件沒有適當(dāng)?shù)奈臋n資料;軟件成本在計算機系統(tǒng)總成本不斷上升;軟件生產(chǎn)率的提高速度既比不上硬件的發(fā)展,也跟不上計算機應(yīng)用迅速普及深入的趨勢。9/18/202320三、產(chǎn)生危機的原因軟件需求巨增!軟件通用性不強軟件難于度量9/18/2023214.
用戶與軟件開發(fā)者之間難以溝通軟件難以維護:
沒有適當(dāng)?shù)奈臋n資料;
軟件的維護是修改原來的設(shè)計;軟件開發(fā)受硬件的限制軟件是定做而不是組裝;沒有工程化的管理和方法。9/18/202322改正一個問題需付出的代價改正一個問題的估計費用改正一個問題的估計工作量20200200010005.02.50.50.05
(人/天)需概詳編系用求要細碼統(tǒng)戶分設(shè)設(shè)調(diào)測現(xiàn)析計計試試場2023/9/1823解決問題的途徑——軟件開發(fā)工程化!如何維護已有的軟件?如何使軟件的開發(fā)速度適應(yīng)越來越大的軟件需求?如何面臨挑戰(zhàn)???9/18/202324§-----方法9/18/202325什么是軟件工程軟件工程的基本原理軟件工程方法學(xué)一、軟件工程是什么?軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的工程學(xué)科。軟件工程是以系統(tǒng)的、工程的概念、原理、技術(shù)和方法開發(fā)和維護軟件,把先進的管
理技術(shù)和開發(fā)技術(shù)相結(jié)合,經(jīng)濟地開發(fā)出
高質(zhì)量的軟件并有效地維護它。軟件工程是1968年NATO在計算機科學(xué)家國際會議上首次提出來。9/18/Fritz
Bauer的定義:軟件工程是為了經(jīng)濟地獲得可靠的并能高效運行的軟件,而建立和使用的完善的工程化原則。IEEE的定義:軟件工程是開發(fā)、運行、 維護和修復(fù)軟件的系統(tǒng)方法。將系統(tǒng)化的、規(guī)范的、可度量的方法
應(yīng)用于軟件的開發(fā)、運行和維護的過程。9/18/202327Boehm提出了軟件工程的7條基本原理:用分階段的生命周期計劃嚴格管理;堅持進行階段評審;實行嚴格的產(chǎn)品控制;采用現(xiàn)代程序設(shè)計技術(shù);結(jié)果應(yīng)能清楚地審查;開發(fā)人員應(yīng)該少而精;承認不斷改進軟件工程實踐的必要性9/18/202328二、軟件工程基本原理一個好的工業(yè),應(yīng)該有一
套良好的標準來配套。軟件的工業(yè)化生產(chǎn)過程應(yīng)具備的特點:明確的工作步驟詳細具體的規(guī)范化文檔明確的質(zhì)量評價標準三、軟件工程基本原理方法工具過程9/18/202329軟件工程層次圖:管理:支持軟件工程的根基在于對質(zhì)量的關(guān)注。過程:過程將技術(shù)層結(jié)合在一起,使計算機軟件合理并及時開發(fā)出來。方法:涵蓋一系列的任務(wù):分析、設(shè)計、編程、測試和維護。工具:對過程、方法提供自動或半自動的支持。例:CASE軟件工程環(huán)境。工具(CASE)方法(任務(wù))過程(構(gòu)建框架)質(zhì)量管理(基礎(chǔ))計算機輔助軟件工程。集成了軟件、硬件和
一個軟件工程數(shù)據(jù)庫(倉庫),形成了軟件工程環(huán)境。9/18/202330軟件工程的一般視圖:軟件工程完成對技術(shù)實體(計算機軟件)的分析、設(shè)計、建造、驗證和管理。軟件工程必須回答的問題:–要解決的問題是什么?–實體有哪些特點?–如何實現(xiàn)?–如何建造?–如何及時發(fā)現(xiàn)錯誤?–如何維護?9/18/202331軟件系統(tǒng)開發(fā)過程中會面臨很多問題,就需要我們?nèi)フJ識,去解決!去面對!這樣我們的軟件事業(yè)才會迅速發(fā)展!9/18/202332§-----測試?9/18/202333人們在對軟件工程開發(fā)的常規(guī)認識中,認為開發(fā)程序是一個復(fù)雜而困難的過程,需要花費大量的人力、物力和時間,而測試一個程序則比較容易,不需要花費太多的精力。這其實是人們對軟件工程開發(fā)過程理解上的一個誤區(qū)。在實際的軟件開發(fā)過程中,作為現(xiàn)代軟件開發(fā)工業(yè)一個非常重要的組成部分,軟件測試正扮演著越來越重要的角色。隨著軟件規(guī)模的不斷擴大,如何在有限的條件下對被開發(fā)軟件進行有效的測試正成為軟件工程中一個非常關(guān)鍵的課題。軟件測試的復(fù)雜性設(shè)計測試用例是一項細致并且需要具備高度技巧的工作,稍有不慎就會顧此失彼,發(fā)生不應(yīng)有的疏漏。下面分析了容易出現(xiàn)問題的根源。(1)
完全測試是不現(xiàn)實的在實際的軟件測試工作中,不論采用什么方法,由于軟件測試
情況數(shù)量極其巨大,都不可能進行完全徹底的測試。所謂徹底
測試,就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍。通常也稱這種測試為“窮舉測試”。窮舉測試會引起以下幾種問題:輸入量太大;輸出結(jié)果太多;軟件執(zhí)行路徑太多;說明書存在主觀性。9/18/202334E.W.Dijkstra的一句名言對測試的不徹底性作了很好的注解:“程序測試只能證明錯誤的存在,但不能證明錯誤的不存在”。由于窮舉測試工作量太大,實踐上行不通,這就注定了一切實際測試都是不徹底的,也就不能夠保證被測試程序在理論上不存在遺留的錯誤(2)軟件測試是有風(fēng)險的窮舉測試的不可行性使得大多數(shù)軟件在進行測試的時候只能采取非窮舉測試,這又意味著一種冒險。比如在使用MicrosoftOffice工具中的Word時,可以作這樣的一個測試:①新建一個Word文檔;②在文檔中輸入漢字“胡”;③設(shè)置其字體屬性為“隸書”,字號為初號,效果為“空心”;④將頁面的顯示比例設(shè)為“500%”。這時在“胡”字的內(nèi)部會出現(xiàn)“胡萬進印”四個字。類似問題在實際測試中如果不使用窮舉測試是很難發(fā)現(xiàn)的,而如果在軟件投入市場時才發(fā)現(xiàn)則修復(fù)代價就會非常高。這就會產(chǎn)生一個矛盾:軟件測試員不能做到完全的測試,不完全測試又不能證明軟件的百分之百的可靠。那么如何在這兩者的矛盾中找到一個相對的平衡點呢?9/18/202335如圖1所示的最優(yōu)測試量示意圖可以觀察到,當(dāng)軟件缺陷降低到某一數(shù)值后,隨著測試從量的不斷上升軟件缺陷并沒有明顯地下降。這是軟件測試工作中需要注意的重要問題。如何把測試數(shù)據(jù)量巨大的軟件測試減少到可以控制的范圍,如何針對風(fēng)險做出最明智的選擇是軟件測試人員必須能夠把握的關(guān)鍵問題。圖1的最優(yōu)測試量示意圖說明了發(fā)現(xiàn)軟件缺陷數(shù)量和測試量之間的關(guān)系,隨著測試量的增加,測試成本將呈幾何數(shù)級上升,而軟件缺陷降低到某一數(shù)值之后將沒有明顯的變化,最優(yōu)測量值就是這兩條曲線的交點。?9/18/2023369/18/202337軟件測試的經(jīng)濟性軟件測試的經(jīng)濟性有兩方面體現(xiàn):一是體現(xiàn)在測試工作在整個項目開發(fā)過程中的重要地位;二是體現(xiàn)在應(yīng)該按照什么樣的原則進行測試,以實現(xiàn)測試成本與測試效果的統(tǒng)一。軟件工程的總目標是充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。9/18/202338軟件測試的誤區(qū)隨著軟件產(chǎn)業(yè)工業(yè)化、模塊化地發(fā)展,在軟件開發(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 伊犁職業(yè)技術(shù)學(xué)院《課程項目實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰州2025年江蘇泰州市第二人民醫(yī)院招聘衛(wèi)生專業(yè)技術(shù)人員21人筆試歷年參考題庫附帶答案詳解
- 上海中醫(yī)藥大學(xué)《神經(jīng)及精神病學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣元中核職業(yè)技術(shù)學(xué)院《金融衍生工具》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧波工程學(xué)院《郵輪旅行管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 天水師范學(xué)院《文化市場學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽化工大學(xué)《無機及分析化學(xué)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣安職業(yè)技術(shù)學(xué)院《小學(xué)數(shù)學(xué)解題與競賽研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 資金補助合同范本
- Unit 1 Past and Present Welcome to the Unit 教學(xué)設(shè)計 2024-2025學(xué)年牛津譯林版八年級英語下冊
- 如何在本機上架設(shè)服務(wù)器
- 一年級寫字下學(xué)期課件(PPT 38頁)
- 《實用日本語應(yīng)用文寫作》全套電子課件完整版ppt整本書電子教案最全教學(xué)教程整套課件
- 怎樣處理課堂突發(fā)事件
- 采礦學(xué)課程設(shè)計-隆德煤礦1.8Mta新井開拓設(shè)計
- 中藥藥劑學(xué)講義(英語).doc
- 【課件】Unit1ReadingforWriting課件高中英語人教版(2019)必修第二冊
- Q∕GDW 10799.6-2018 國家電網(wǎng)有限公司電力安全工作規(guī)程 第6部分:光伏電站部分
- 滴灌工程設(shè)計示例
- 配套模塊an9238用戶手冊rev
- 醫(yī)院室外管網(wǎng)景觀綠化施工組織設(shè)計
評論
0/150
提交評論