




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1.1 軟件與軟件危機軟件的作用具有產品和產品生產載體的雙重作用。作為產品,軟件顯示了由計算機硬件體現的計算能力,扮演著信息轉換的角色:產生、管理、查詢、修改、顯示或者傳遞各種不同的信息。作為產品生產的載體,軟件提供了計算機控制(操作系統)、信息通信(網絡),以及應用程序開發和控制的基礎平臺(軟件工具和環境)。 1.1 軟件與軟件危機軟件的概念 雖然軟件對于現代的人并不陌生,但很多人對于軟件的理解并不準確,“軟件就是程序,軟件開發就是編程序”的這種錯誤觀點仍然存在。什么是軟件?1.1 軟件與軟件危機軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序,數據及其相關文檔的完整集合。程序是按事
2、先設計的功能和性能要求執行的指令序列。數據是使程序能正常操縱信息的數據結構。文檔是與程序開發,維護和使用有關的圖文材料。1.1 軟件與軟件危機軟件的特性(1) 形態特性: 軟件是無形的、不可見的邏輯實體。度量常規產品的幾何尺寸、物理性質和化學成分對它卻是毫無意義的。 (2) 智能特性:軟件是復雜的智力產品,它的開發凝聚了人們的大量腦力勞動,它本身也體現了知識實踐經驗和人類的智慧,具有一定的智能。它可以幫助我們解決復雜的計算、分析、判斷和決策問題。(3) 開發特性: 盡管已經有了一些工具(也是軟件)來輔助軟件開發工作,但到目前為止尚未實現自動化。軟件開發中仍然包含了相當份量的個體勞動,使得這一大
3、規模知識型工作充滿了個人行為和個人因素。 (4) 質量特性:目前還無法得到完全沒有缺陷的軟件產品 。1.1 軟件與軟件危機(5) 生產特性:與硬件或傳統的制造業產品的生產完全不同,軟件一旦設計開發出來,如果需要提供多個用戶,它的復制十分簡單,其成本也極為有限 。 (6) 管理特性:由于上述的幾個特點,使得軟件的開發管理顯得更為重要,也更為獨特 。1.1 軟件與軟件危機(7) 環境特性:軟件的開發和運行都離不開相關的計算機系統環境,包括支持它的開發和運行的相關硬件和軟件。軟件對于計算機系統的環境有著不可擺脫的依賴性。 (8) 維護特性:軟件投入使用以后需要進行維護,但這種維護與傳統產業產品的維護
4、概念有著很大差別。 1.1 軟件與軟件危機(9) 廢棄特性: 與硬件不同,軟件并不是由于被“用壞”而被廢棄的 。 (10) 應用特性:軟件的應用極為廣泛,如今它已滲入國民經濟和國防的各個領域,現已成為信息產業、先進制造業和現代服務業的核心,占據了無可取代的地位。 1.1 軟件與軟件危機軟件危機暴發于上個世紀六十年代末。主要表現為:軟件的發展速度遠遠滯后于硬件的發展速度,不能滿足社會日益增長的軟件需求。軟件開發周期長、成本高、質量差、維護困難。 1.1 軟件與軟件危機軟件危機典型例子:美國IBM公司在1963年至1966年開發的IBM 360機的操作系統。 這個項目的負責人F.D.Brooks事
5、后總結了他在組織開發過程中的沉痛教訓時說:正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深。最后無法逃脫滅頂的災難,程序設計工作正像這樣一個泥潭,一批批程序員被迫在泥潭中拼命掙扎,誰也沒有料到竟會陷入這樣的困境1.1 軟件與軟件危機具體來說,軟件危機主要有以下一些典型表現:對軟件開發成本和進度的估計常常很不準確。用戶對“已完成的”軟件系統不滿意的現象經常發生。軟件產品的質量往往靠不住。軟件常常是不可維護的。軟件通常沒有適當的文檔資料。軟件成本在計算機系統總成本中所占的比例逐年上升。軟件開發生產率提高的速度,既跟不上硬件的發展速度,也遠遠跟不上計算機應用迅速普及深入的趨勢。 1.1
6、軟件與軟件危機除了軟件本身的特點,軟件危機發生的主要原因有: 缺乏軟件開發的經驗和有關軟件開發數據的積累,使得開發工作的計劃很難制定。軟件人員與用戶的交流存在障礙,使得獲取的需求不充分或存在錯誤 。軟件開發過程不規范。如,沒有真正了解用戶的需求就開始編程序。 隨著軟件規模的增大,其復雜性往往會呈指數級升高。需要很多人分工協作,不僅涉及技術問題,更重要的是必須有科學嚴格的管理。缺少有效的軟件評測手段,提交用戶的軟件質量不能完全保證。 1.1 軟件與軟件危機徹底消除“軟件就是程序”的錯誤觀念。充分認識到軟件開發應該是一種組織良好、管理嚴密、各類人員協同配合、共同完成的工程項目。推廣和使用在實踐中總
7、結出來的開發軟件的成功技術、方法和工具。按工程化的原則和方法組織軟件開發工作。 如何擺脫軟件危機?1.1 軟件與軟件危機1.2 軟件工程及其基本原理軟件工程的概念為了克服軟件危機,1968年10月在北大西洋公約組織(NATO)召開的計算機科學會議上,Fritz Bauer首次提出“軟件工程”的概念,試圖將工程化方法應用于軟件開發。在NATO會議上,Fritz Bauer對軟件工程的定義是:“軟件工程就是為了經濟地獲得可靠的且能在實際機器上有效地運行的軟件,而建立和使用完善的工程原理。” 1993年IEEE給出的定義: “軟件工程是: 把系統的、規范的、可度量的途徑應用于軟件開發、運行和維護過程
8、,也就是把工程應用于軟件; 研究中提到的途徑。”。1.2 軟件工程及其基本原理軟件工程是指導計算機軟件開發和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發和維護軟件,把經過時間考驗而證明正確的管理技術和當前能夠得到的最好技術結合起來,以經濟地開發出高質量的軟件并有效地維護它,這就是軟件工程。1.2 軟件工程及其基本原理1.2 軟件工程及其基本原理軟件工程的目標軟件工程的目標是運用先進的軟件開發技術和管理方法來提高軟件的質量和生產率,也就是要以較短的周期、較低的成本生產出高質量的軟件產品,并最終實現軟件的工業化生產。 1.2 軟件工程及其基本原理軟件的質量特性:功能性、可靠性、可使用
9、性、效率、可維護性和可移植性。功能性是指軟件所實現的功能達到它的設計規范和滿足用戶需求的程度;可靠性是指在規定的時間和條件下,軟件能夠正常維持其工作的能力;可使用性是指為了使用該軟件所需要的能力;效率是指在規定的條件下用軟件實現某種功能所需要的計算機資源的有效性;可維護性是指當環境改變或軟件運行發生故障時,為了使其恢復正常運行所做努力的程度;可移植性是指軟件從某一環境轉移到另一環境時所做努力的程度。 1.2 軟件工程及其基本原理質量目標之間的關系(1)關注大型軟件的構造(2)中心課題是控制復雜性(3)軟件經常變化(4)開發軟件的效率非常重要(5)和諧地合作是開發軟件的關鍵(6)軟件必須有效地支
10、持它的用戶(7)在軟件工程領域中是由一種文化背景的人替具有另一種文化背景的人創造產品1.2 軟件工程及其基本原理軟件工程的本質特性 (1)按軟件生存周期分階段制訂計劃并認真實施 (2)堅持進行階段評審(3)堅持嚴格的產品控制(4)使用現代軟件開發技術(5)明確責任 (6)用人少而精(7)不斷改進開發過程 1.2 軟件工程及其基本原理軟件工程的基本原理 1.3 軟件生命周期概念 軟件也有一個孕育、誕生、成長、成熟和衰亡的生存過程,我們稱這個過程為軟件生命周期或軟件生存期。 軟件生存期由軟件定義、軟件開發和運行維護3個時期組成,每個時期又可劃分為若干個階段。 1.3 軟件生命周期軟件定義時期 主要
11、任務是解決“做什么”的問題,即確定工程的總目標和可行性;導出實現工程目標應使用的策略及系統必須完成的功能;估計完成工程需要的資源和成本;制訂工程進度表。 通常又分為3個階段:問題定義、可行性研究和需求分析。 1.3 軟件生命周期軟件開發時期 主要任務是解決“如何做”的問題,即具體設計和實現在前一個時期定義的軟件。 由概要設計、詳細設計、編碼和測試4個階段組成。 1.3 軟件生命周期軟件運行維護時期 主要任務是使軟件持久地滿足用戶的需要,通常有4類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的軟件錯誤;適應性維護,即修改軟件以適應環境的變化;完善性維護,即根據用戶的要求改進或擴充軟件,
12、使它更完善;預防性維護,即修改軟件為將來的維護活動預先做準備。 1.3 軟件生命周期開發過程中的典型文檔 軟件需求規格說明書:描述將要開發的軟件做什么。 項目計劃:描述將要完成的任務及其順序,并估計所需要的時間及工作量。 軟件測試計劃:描述如何測試軟件,使之確保軟件應實現規定的功能,并達到預期的性能。 軟件設計說明書:描述軟件的結構,包括概要設計及詳細設計。 用戶手冊:描述如何使用軟件。 1.3 軟件生命周期各個階段所要完成的基本任務問題定義與可行性研究 本階段要回答的關鍵問題是“到底要解決什么問題?在成本和時間的限制條件下能否解決問題?是否值得做?” (2) 需求分析 本階段要回答的關鍵問題
13、是“目標系統應當做什么?” (3) 軟件設計 設計是軟件工程的技術核心。本階段要回答的關鍵問題是“如何實現目標系統?” 1.3 軟件生命周期各個階段所要完成的基本任務(4) 程序編碼和單元測試 本階段要解決的問題是“正確地實現已做的設計”,即“如何編寫正確的、可維護的程序代碼?” (5) 集成和系統測試 測試是控制軟件質量的重要手段,本階段的主要任務是做集成測試和系統測試。 (6) 軟件運行和維護 已交付的軟件投入正式使用,便進入運行階段。這一階段可能持續若干年。軟件在運行中可能由于多方面的原因,需要對它進行修改。 1.4 軟件工程方法學概念軟件工程包含技術和管理兩方面的內容,是技術和管理緊密
14、結合所形成的工程學科。通常將軟件開發全過程中使用的一整套技術方法的集合稱為方法學(methedology),也稱為范型(paradigm)。目前使用最廣泛的軟件工程方法學:傳統方法(結構化方法),面向對象方法。1.4 軟件工程方法學三要素:方法、工具和過程。軟件工程方法為軟件開發提供了 “如何做” 的技術;軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環境;過程是為了獲得高質量的軟件所需要完成的一系列任務框架,它規定了完成各項任務的工作步驟。1.4 軟件工程方法學結構化方法 也稱為生命周期方法學或結構化范型。將軟件生命周期的全過程依次劃分為若干個階段,采用結構化技術來完成每個階段的任務。
15、特點:(1) 強調自頂向下順序地完成軟件開發的各階段任務; (2) 結構化方法要么面向行為,要么面向數據,缺乏使兩者有機結合的機制。1.4 軟件工程方法學面向對象方法是將數據和對數據的操作緊密地結合起來的方法。軟件開發過程是多次反復迭代的演化過程。面向對象方法在概念和表示方法上的一致性,保證了各項開發活動之間的平滑過渡。對于大型、復雜及交互性比較強的系統,使用面向對象方法更有優勢。 1.5 軟件工程知識體系及知識域介紹軟件工程教育(3個歷史時期) (1) 1978年以前:軟件工程教育以計算機專業的一門孤立的課程形式存在。 (2) 19781988年期間:早期的研究生學位教育,開始建立軟件工程專
16、業的研究生學位教育項目。 (3) 1988年以后:快速發展的研究生學科教育,使軟件工程的理論快速發展,其中,卡內基梅隆大學軟件工程研究所(SEI)的影響不可忽視。 1.5 軟件工程知識體系及知識域介紹軟件工程知識體軟件工程已從計算機科學與技術中脫離出來,逐漸形成了一門獨立的學科。對其知識體系的研究從20世紀90年代初就開始了。標志是美國Embry-Riddle航空大學計算與數學系Thomas B.Hilburn教授的“軟件工程知識體系指南”(Guide to Software Engineering Body of Knowledge,SWEBOK)研究項目。 1.5 軟件工程知識體系及知識域
17、介紹軟件工程知識體系指南的目標(1) 促使軟件工程本體知識成為世界范圍的共識。(2) 澄清軟件工程與其他相關學科,如與計算機科學、項目管理、計算機工程以及計算機數學之間的關系,并且確定軟件工程學科的范圍。(3) 反映軟件工程學科內容的特征。(4) 確定軟件工程本體知識的各個專題。(5) 為相應的課程和職業資格認證材料的編寫奠定基礎。 1.5 軟件工程知識體系及知識域介紹軟件工程知識體系指南的內容 SWEBOK指南將軟件工程知識體系劃分為10個知識域(knowledge areas,KA),分為兩類過程。一類是開發與維護過程,包括軟件需求、軟件設計、軟件構造、軟件測試和軟件維護;另一類是支持和組
18、織過程,包括軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具與方法和軟件質量。每個知識域還可進一步分解為若干論題。 1.5 軟件工程知識體系及知識域介紹軟件工程知識體系指南的內容1.5 軟件工程知識體系及知識域介紹每個知識域又可分解為若干子知識域,如表所示。1.6 軟件產業的形成與發展我國軟件產業的形成 軟件產業是以開發、研究、經營、銷售軟件產品或軟件服務為主的企業組織及其在市場上的相互關系的集合。 軟件產業是信息產業的核心,是國民經濟基礎性、戰略性產業,直接關系國家政治、經濟和社會的安全。 目前我國軟件產業鏈已經初步形成,在其形成的過程中,我國的軟件產業主要經歷了萌芽期、起步期、進入期
19、和發展期4個階段。進入了2000年以后,中國的軟件企業開始進入網絡軟件時期。 1.6 軟件產業的形成與發展全球軟件產業的發展 到目前為止,全球軟件產業的發展已經經歷了比較完整的5代。 第一代:早期專業的服務公司(19491959年) 第二代:早期軟件產品公司(19591969年) 第三代:強大的企業解決方案提供商的出現(19691981年) 第四代:客戶大眾市場軟件(19811994年) 第五代:互聯網增值服務(1994年至今) 1.6 軟件產業的形成與發展軟件產業的發展模式 目前得到公認的產業發展模式有美國模式、印度模式、愛爾蘭模式、日本模式等。 美國模式技術與服務領導型 美國的軟件產業主要由3個部分組成。 (1) 以商業銷售或租賃為目的,設計和生產軟件產品的公司。 (2) 開發因特網和電子商務技術,提供網上信息和服務的公司。 (3) 專為計算機提供軟件服務的公司。1.6 軟件產業的形成與發展軟件產業的發展模式印度模式國際加工服務型 印度的軟件產業屬于外向型的產業,以外包服務為主,軟件企業對于促進印度的出口起了十分重要的作用。 愛爾蘭模式生產本地化型 根據歐洲市場20多種不同語言的實際需要,愛爾蘭將自己定位為美國軟件公司產品歐洲化版本的加工基地,吸引跨國軟件公司和國際知名學府在國內建立研發和分支機構,實現國外軟件產品本地化。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 歷年高考各省語文作文范文5篇
- 旅游度假區項目風險評估與對策
- 2025年上海奉賢區機關事業單位招聘考試筆試試題(含答案)
- 老年期課件教學課件
- 老年護理課件教學
- 老師課件導入方法
- 老師安全課堂課件
- 裝修工程驗收及保修個人服務合同
- 高端人才招聘標準勞動合同范本
- 車輛指標租賃與城市交通擁堵治理協議
- 新版標準日本語(初級)上下冊單詞默寫表
- 學校財務人員述職報告范文
- 履帶式微耕機的結構設計說明書
- 一種鰭狀結型場效應晶體管及其制備方法、芯片與流程
- 設備安裝施工方案完整版
- 火針療法在皮膚病治療中的應用
- 基于PLC的智能車庫門系統設計
- 【2023有效教學設計原理、策略與評價讀書報告3600字】
- 頂管專項施工方案-人工頂管
- SYNTEC參數說明手冊
- 2023春國家開放大學-01880組織行為學-期末考試題帶答案
評論
0/150
提交評論