




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟 件 工 程 概 論,湖北工業(yè)大學計算機學院 趙 嵐 ,軟件工程是計算機專業(yè)的一門重要的專業(yè)基礎課,它對于培養(yǎng)學生軟件素質,提高學生的軟件開發(fā)能力與軟件項目管理能力具有重要的意義。,課程主要內(nèi)容,本課程主要介紹軟件的基本要領和軟件工程的目標,通過對傳統(tǒng)的面向過程的軟件開發(fā)方法和面向對象的軟件開發(fā)方法的介紹,使學生掌握開發(fā)高質量軟件的方法;通過對軟件開發(fā)過程和過程管理技術的學習,使學生了解如何進行軟件度量和管理,怎樣進行質量保證活動,從而有效地策劃和管理軟件開發(fā)活動。,軟件工程課程與其它軟件專業(yè)課的區(qū)別,立足于系統(tǒng)的整體 講授系統(tǒng)分析、系統(tǒng)設計、測試及維護的理論和方法 構筑一個軟件系統(tǒng),實現(xiàn)軟
2、件開發(fā)全過程,1.1 軟件,一、軟件 “軟件”一詞最初是在1960年出現(xiàn)的,目前還沒有一個公認的定義。在某些文獻里定義軟件為: 軟件 程序 + 數(shù)據(jù) + 文檔,6,軟件的定義: 軟件(software)是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,它包括程序(program)、相關數(shù)據(jù)(data)及其說明文檔(document)。 軟件由計算機程序、數(shù)據(jù)及文檔組成。,*注: (1)在運行中提供所希望的功能和性能的指令集(即程序) (2)使程序能夠正確運行的數(shù)據(jù)結構 (3)是與程序開發(fā),維護和使用有關的圖文材料。,二、軟件的特點:,軟件是一種邏輯實體,而不是具體的物理實體。因而它具
3、有抽象性。 軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程。,(3)在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題。所以軟件的維護比硬件的維護要復雜得多,與硬件的維修有著本質的差別。,(4) 軟件的開發(fā)和運行常常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性。 (5) 軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式。 (6) 軟件本身是復雜的。 (7) 軟件成本相當昂貴。 (8) 相當多的軟件工作涉及到社會因素。,10,軟件生產(chǎn)的發(fā)展,程序設計時代,程序系統(tǒng)時代,軟件工程時代,時間,19461956,19561968,1968至今,生產(chǎn)方式,個體手工勞動,作坊式小集團合作,工程化的生
4、產(chǎn),使用工具,機器、匯編語言,高級語言,開發(fā)工具,開發(fā)方法,個人編程技巧,個人編程技巧,開始提出結構化方法,使用數(shù)據(jù)庫、網(wǎng)絡、分布式、面向對象技術等,硬件特征,價格貴,存儲容量小,運行可靠性差,速度、容量及工作可靠性明顯提高,價格降低,向超高速、大容量、微型化以及網(wǎng)絡化方向發(fā)展,軟件特征,只有程序設計概念,不重視程序設計方法,程序員數(shù)量猛增,但開發(fā)人員素質差,開發(fā)技術沒有新突破。軟件危機產(chǎn)生。,開發(fā)技術有很大進步,但沒有突破性進展,沒有完全擺脫軟件危機。,等于程序加技術文檔,完整定義,等于程序,軟件定義,從軟件發(fā)展的三個時期及其特點的對比,可以看出軟件發(fā)展最根本的變化體現(xiàn)在:,人們改變了對軟件
5、的看法 軟件的需求是軟件發(fā)展的動力 軟件工作的范圍從只考慮程序的編寫擴展到整個軟件生存周期,12,軟件種類可以從六個方面進行劃分: 按功能分類 應用軟件工程和科學計算軟件、嵌入式軟件、計算機輔助設計制造(CADCAM)軟件、系統(tǒng)仿真軟件、人工智能軟件等 。 系統(tǒng)軟件操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、設備驅動程序以及通信處理程序等。它是計算機系統(tǒng)必不可少的一個組成部分。 支撐軟件支持軟件設計的圖形軟件包,支持軟件實現(xiàn)的編輯程序、預編譯程序等。它是協(xié)助用戶開發(fā)軟件的工具性軟件,1.1.2軟件的分類,13,按規(guī)模分類 按工作方式分類 分時軟件 實時軟件 交互式軟件 批處理式軟件,14,按服務對象分類 項目軟
6、件也稱定制軟件,是受某個特定客戶(或少數(shù)客戶)的委托,由一個或多個軟件開發(fā)機構在合同的約束下開發(fā)出來的軟件。例如軍用防空指揮系統(tǒng)、衛(wèi)星控制系統(tǒng)。 產(chǎn)品軟件是由軟件開發(fā)機構開發(fā)出來直接提供給市場,或是為千百個用戶服務的軟件。例如,文字處理軟件、文本處理軟件、財務處理軟件、人事管理軟件等。 按使用頻度分類 一次性使用軟件 頻繁使用軟件 按失效影響分類 高可靠性軟件 一般可靠性軟件 每一類軟件在管理方面要求程度不同。,15,1. 軟件危機 軟件危機指的是軟件開發(fā)和維護過程中遇到的一系列嚴重問題。 軟件危機包含以下兩方面的問題:如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求;如何維護數(shù)量不斷膨脹的已有軟
7、件。,1.1.3 軟件危機,16,美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序。據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結果。,1995年SEI統(tǒng)計,美國共取消了810億美元的商業(yè)軟件項目,其中31的項目未做完就被取消,53的軟件項目進度通常要延長50%的時間,只有9的軟件項目能夠及時交付并且費用也控制在預算之內(nèi)。,1962年7月22日美國一個計劃飛往金星的飛船水手1號在升空290秒之后墜毀。經(jīng)調(diào)查發(fā)現(xiàn),地面控制計算機中一段運行程序執(zhí)行
8、了類似這樣的代碼:If not 雷達發(fā)現(xiàn)火箭 then 不調(diào)整火箭的飛行路線。然而程序員一個不小心漏掉了not,導致了這些事故的發(fā)生,17,2000年TechRepublic公司發(fā)表了有關IT項目的調(diào)查結果。該調(diào)查是以北美的1375個IT專家為對象實施問卷調(diào)查進行的。根據(jù)此調(diào)查,IT項目中有40%失敗,這些項目的平均成本每年花費100萬美元。,18,軟件危機的表現(xiàn) 開發(fā)成本難以控制,進度不可預計; 軟件系統(tǒng)的質量和可靠性很差,難以滿意; 軟件文檔相當缺乏,軟件系統(tǒng)不可維護; 軟件開發(fā)生產(chǎn)率很低,軟件產(chǎn)品供不應求。 軟件產(chǎn)品成本十分昂貴。,軟件危機產(chǎn)生的原因 1軟件本身的特點: - 軟件是一種邏
9、輯實體,而不是具體的物理實體,具有高度的抽象性; - 軟件是一個邏輯上復雜而規(guī)模上龐大的系統(tǒng),涉及技術、管理等多方面的問題; - 軟件的生產(chǎn)方式與硬件明顯不同:產(chǎn)品的質量控制在設計和制造階段的不同;產(chǎn)品的生產(chǎn)方式不同;設計和制造階段的資金和人力投入、 技術復雜度不同; - 軟件的運行和維護階段,沒有傳統(tǒng)意義上的機械磨損、老化問題。 - 軟件與硬件有關,對軟件有可移植性的要求。 - 軟件工作涉及許多社會因素。 2對軟件開發(fā)與維護存在許多錯誤認識和做法:忽視軟件需求分析的重要性;對軟件與程序的概念不清;輕視軟件維護。 3軟件開發(fā)與維護的方法不正確:對系統(tǒng)需求沒有清楚和準確的認識就進入開發(fā)階段, 忽
10、視對軟件開發(fā)過程的管理;,19,軟件的定義(Boehm):軟件是程序以及開發(fā)、使用和維護程序需要的所有文檔。,早,中,晚,引入同一變動付出的代價隨時間變化的趨勢,改正一個問題的估計費用(美元),改正一個問題的估計工作量(人天),20,200,1000,2000,0.05,0.5,2.5,5.0,需求分析,概要設計,詳細設計,編碼,集成測試,系統(tǒng)測試,現(xiàn)場,Bell 實驗室統(tǒng)計結果(US),軟件產(chǎn)品需要分階段的定義、設計和開發(fā),嚴格的產(chǎn)品質量控制,完整的文檔記錄。,50,60,70,80,90,硬件,軟件,20,解決軟件危機的途徑 將軟件開發(fā)看成是一種組織嚴密、管理嚴格、各類人員協(xié)同配合共同完成
11、的工程項目。 研究和推廣成功的軟件開發(fā)技術和方法。 開發(fā)和使用好的軟件工具。 基本概念: 軟件生命周期:軟件所經(jīng)歷的定義、開發(fā)、使用和維護直到廢棄所經(jīng)歷的時期。 程序設計環(huán)境:源程序編輯,編譯或解釋,鏈接,調(diào)試和運行工具的集合。 軟件工程環(huán)境:軟件定義,設計和實現(xiàn),測試和維護等各個階段所使用的軟件工具的集合。,21,1.2.1軟件工程定義 研究如何應用一些科學理論和工程上的技術來指導軟件的開發(fā),用較少的投資獲得高質量的軟件的一門學科。,1.2軟件工程,22,軟件工程的兩個典型定義: 1968年在第一屆NATO會議上曾經(jīng)給出了軟件工程的一個早期定義:“軟件工程就是為了經(jīng)濟地獲得可靠的且能在實際機
12、器上有效地運行的軟件,而建立和使用完善的工程原理?!边@個定義不僅指出了軟件工程的目標是經(jīng)濟地開發(fā)出高質量的軟件,而且強調(diào)了軟件工程是一門工程學科,它應該建立并使用完善的工程原理。 1993年IEEE進一步給出了一個更全面更具體的定義:“軟件工程是: 把系統(tǒng)的、規(guī)范的、可度量的途徑應用于軟件開發(fā)、運行和維護過程,也就是把工程應用于軟件; 研究中提到的途徑。”,23,軟件工程性質:涉及計算機科學、工程科學、管理科學、數(shù)學等領域,著重于如何建造一個軟件系統(tǒng)。用工程科學中的觀點來進行費用估算、制定進度、制定計劃和方案。用管理科學中的方法和原理進行軟件生產(chǎn)的管理。用數(shù)學的方法建立軟件開發(fā)中的各種模型和各
13、種算法,如可靠性模型,說明用戶需求的形式化模型等。 軟件工程三要素:方法、工具和過程。,24,軟件方法,是完成軟件開發(fā)的各項任務的技術方法,回答“如何做”的問題;工具是為方法的運用提供自動的或半自動的軟件支撐環(huán)境;過程是為了獲得高質量的軟件所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。 傳統(tǒng)方法學 面向對象方法學,25,需要解決的問題:軟件成本、軟件可靠性、軟件維護、軟件生產(chǎn)率和軟件復用。 基本內(nèi)容:包括理論、結構、方法、工具、環(huán)境與規(guī)范等 目標:以較少的投資獲得易維護、易理解、可靠和高效率的軟件產(chǎn)品。 原則:即分解、抽象和信息隱蔽、一致性和確定性 原理:工程化和系統(tǒng)化。,軟件
14、工程框架,27,ISO 9000定義:軟件過程是把輸入轉化為輸出的一組彼此相關的資源和活動。 從軟件開發(fā)的觀點看,它就是使用適當?shù)馁Y源(包括人員、硬軟件工具、時間等),為開發(fā)軟件進行的一組開發(fā)活動,在過程結束時將輸入(用戶要求)轉化為輸出(軟件產(chǎn)品)。,1.2.2軟件過程,軟件工程過程包含四種基本的過程活動: Plan 軟件規(guī)格說明:規(guī)定軟件的功能及其運行的限制 Do 軟件開發(fā):產(chǎn)生滿足規(guī)格說明的軟件 Check 軟件確認:確認軟件能夠完成客戶提出的要求 Action 軟件演進:為滿足客戶的變更要求,軟件必須在使用的過程中演進,29,過程元素之間的關系,30,標準軟件過程體系結構圖,31,詳細
15、的軟件過程層次體系結構,32,軟件過程模型,*注:軟件過程模型即為下章的軟件開發(fā)模型,具體模型下次課詳細介紹,33,【例】若要開發(fā)一個軟件系統(tǒng)(如圖書館信息系統(tǒng)),為了完成這項任務,首先要選擇軟件開發(fā)模型,確定開發(fā)方法、準備開發(fā)工具、設計開發(fā)環(huán)境和運行環(huán)境,然后進行需求分析、設計、編程、測試、試運行、正式運行、驗收和交付,最后是系統(tǒng)維護或系統(tǒng)升級換代。這樣就按照所選擇的開發(fā)模型,走完了軟件的一個生命周期,這一系列的軟件開發(fā)過程和管理過程,就是軟件工程。,三、軟件工程的基本原理 1968年,在聯(lián)邦德國加爾密斯,北大西洋公約組織(NATO),召開的有關計算機軟件會議上正式“軟件工程”術語。 目前有
16、100多條關于軟件工程的準則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。,35,軟件工程的基本原理有: 按軟件生存期分階段制定計劃并認真實施; 堅持進行階段評審; 堅持嚴格的產(chǎn)品控制; 使用現(xiàn)代程序設計技術; 明確責任,使得工作結果能夠得到清楚的審查; 用人少而精;不斷改進開發(fā)過程。 承認不斷改進軟件工程實踐的必要性,不僅主動采納新技術,還要注意總結經(jīng)驗 “二八”定律,一般認為完成了實際上只完成了,的問題存在在的程序中等。,理解軟件工程的基本原理,強調(diào)使用生存周期方法學: 就是從時間角度對軟件開發(fā)和維護的復雜問題進行分解,把軟件生存的漫長周期依次劃分為若干階段,每個階段有相對獨立的任務,然后逐步完成每個階段的任務。,理解軟件工程的基本原理(續(xù)),強調(diào)使用結構分析與結構設計任務: 在軟件生存周期的每個階段都采用學的管理技術和良好的技術方法。每個階段結束之前都從技術和管理兩個角度進行嚴格的審查。,四、軟件工程的目標、框架及原則,1、 軟件工程的目標可概括為“生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎ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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 62911:2025 EN-FR Audio,video and information technology equipment - Routine electrical safety testing in production
- 【正版授權】 IEC 61340-4-6:2025 RLV EN Electrostatics - Part 4-6: Standard test methods for specific applications - Wrist straps
- 2025至2030中國電療儀器行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資前景預測報告
- 2025至2030中國電動吸煙者行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國豬濃縮飼料行業(yè)發(fā)展趨勢與發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國物流監(jiān)控系統(tǒng)行業(yè)深度研究及發(fā)展前景投資評估分析
- 新舟60培訓課件
- 井下開采安全培訓課件
- 商業(yè)培訓中的學習心理技巧
- 教育心理學與現(xiàn)代教學技術結合的學生動機研究
- 企業(yè)道路交通安全宣傳
- 635MPa級熱軋帶肋高強鋼筋應用技術規(guī)程
- 中?!峨姽せA》課程標準
- 他汀不耐受的臨床診斷與處理中國專家共識(2024)解讀課件
- 2024年7月國家開放大學法學本科《知識產(chǎn)權法》期末考試試題及答案
- 2024移動金融客戶端應用軟件安全管理規(guī)范標準
- 2025版《新亮劍》高中物理:第九章 靜電場及其應用 靜電場中的能量含答案
- 40000平方米人民醫(yī)院項目監(jiān)理招標文件
- JC-T 902-2002 建筑表面用有機硅防水劑
- 數(shù)字資產(chǎn)監(jiān)管框架優(yōu)化
- 音樂考試真題
評論
0/150
提交評論