




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程目的n了解軟件開發工具的概念、理論基礎、基本功能、發展現狀與前景,以便能夠在實際工作中正確地選擇與使用軟件開發工具n幫助大家了解和熟悉一些常見實用的軟件工具,了解開發大型軟件的基本過程n回顧總結以前所學的內容,進一步理解其在實際開發工作中的作用n為實際的軟件開發工作做準備n培養具備基本的科學研究素質課程要求n熟練掌握課程內容n認真完成作業n上機實驗第1章 緒論本章內容預備知識預備知識1.1軟件開發工具的由來軟件開發工具的由來1.2件開發工具的概念件開發工具的概念1.3軟件開發工具的功能和性能軟件開發工具的功能和性能1.4軟件開發工具的類別軟件開發工具的類別1.5開發軟件的研究和應用開發軟件
2、的研究和應用軟件發展的幾個階段軟件發展的幾個階段 n(1)機器語言階段;使用0、1代碼進行編程。n(2)匯編語言階段;使用助記符來編寫程序,由匯編程序匯編成機器碼,編程工作量大大降低,但仍未擺脫對硬件的依賴。與此同時,操作系統的出現從另一方面改善了人們應用計算機的條件。n(3)高級語言階段、高級語言突破了與機器指令一一對應的限制,大大提高了程序的可移植性。n(4)第四代語言階段,人們希望機器能夠自動地完成更多的工作,包括自動安排某些工作的順序,而做到只要給機器下達做什么的命令,由機器自己去安排執行的順序。n(5)利用通用軟件作為輔助工具的階段利用文字處理軟件來編寫文檔,利用繪圖軟件來繪制流程圖
3、等。n(6)專用軟件開發工具階段支持軟件開發的某一個階段或某一個環節。n(7)集成的軟件開發工具階段零散的、分散地支持各個工作階段、各項具體工作的專用工具之間沒有有機地聯系起來,從而必然造成沖突與矛盾,以致抵消了使用工具帶來的益處。這種情況導致了集成的軟件開發工具的產生。軟件開發工作的發展特點 n軟件的規模越來越大,軟件開發工作的內容也越來越復雜 n開發人員離物理的機器世界越來越遠,離軟件用戶越來越近 n軟件開發工作從以編碼為中心向以需求分析和系統設計為中心轉化 n軟件開發工作從一次性的過程向不斷循環、往復更新的過程發展 軟件開發的過程n需求分析(提出初始要求,形成功能說明)n總體設計(包括軟
4、件的模塊設計、數據結構的設計、各部份的連接方式和信息交換的標準)n編寫程序和編寫文檔(實現階段)n測試和調試(包括模塊的測試和整個軟件的聯調)n應用見效(提出評價與改進要求,進入下一版本的開發)軟件開發的基本問題 n將軟件從用戶的理解轉換為程序員的理解 n將軟件從程序員的理解轉換到計算機上的程序實現 大型軟件開發中的困難 n保持一致性的問題(人員之間各部份間的協調配合) n全面測試(軟件的復雜性只能用黑箱測試) n控制工作進度(軟件的復雜性,測試修改難于按時完成) n文檔與代碼進行協調(代碼常改,文檔難改,代碼容易與文檔脫節) n版本更新 對軟件開發過程的再認識 n從工作任務的角度分析: n需
5、求分析、總體設計、編制程序和文檔、測試和聯調 n從參與開發過程的角色分析: n項目負責人、系統分析設計人員、開發人員、用戶、計算機軟硬件 n從軟件開發過程中的各階段成果分析:n功能說明書、總體設計文件和各模塊的設計任務書、軟件和各類文檔(包括使用說明、用戶手冊的等)、測試計劃和測試報告軟件開發方法的發展 n線型程序設計n結構化程序設計方法n軟件工程n面向對象程序設計方法n組件化程序設計方法線形程序設計n早期的程序設計n源代碼的重用性差n不能控制數據項的可見性結構化程序設計n誕生于60年代n設計思路是:自頂向下、逐步求精。n程序結構按功能劃分為若干個基本模塊 ,這些模塊形成一個樹狀結構。模塊化
6、實現的具體方法是使用子程序n三種基本結構n缺點是數據與過程相互獨立軟件工程的方法n強調兩個方面:n工作步驟n交流標準面向對象程序設計n將數據和對數據的操作作為一個整體來 處理n按人們認識世界的方法和方式來分析和 解決問題面向對象程序設計n易于擴充、修改、維護n易于實現軟件重用n擴充到OOA、OOD、ODBMS等方面,稱為面向對象軟件開發方法組件化程序設計n強調軟件重用和高度的互操作性n將軟件分成若干獨立但相互之間有聯系的組件,將這些組件組裝成軟件產品n組件化程序設計的核心:組件的生產和組件的裝配組件化程序設計n關于組件n軟件的基本量子,具有一定功能,可插用,可維護n軟件開發中的可替換單元,封裝
7、了設計決策,與其他組件結合組成更大的單元n具有特定功能,可跨越進程邊界,實現網絡、語言、應用程序、開發工具、操作系統的“即插即用”的獨立對象n是任何可被分離出來的,具有標準化的可重用的公開接口的軟件組件化程序設計n組件的特征n組件之間在二進制級別上集成和重用n獨立地生產、獲得和配置組件化程序設計n組件的接口n描述組件對外提供的服務,組件和組件之間、組件和客戶之間同時通過接口進行交互n組件接口的穩定性n組件接口的“自我描述性”,描述標準IDL語言組件化程序設計n目前比較成熟的規范nCOM(Component Object Model)nCORBA(Common Objects Request B
8、roker Architecture)軟件工程n軟件工程是研究軟件開發和軟件管理的一門工程科學。n現代軟件工程研究的內容: 序號 研究方面 具體內容 1軟件開發模型 軟件開發周期(瀑布模型、增量模型、原型模型、迭代模型) 2軟件開發方法面向過程方法、面向對象、面向數據 3軟件支持過程如CASE工具、北大青鳥、PowerDesigner 4軟件管理過程 ISO9000、CMM 軟件工程n軟件 vs. 程序n面向過程的程序算法數據結構n面向對象的程序對象消息n面向組件的程序組件構架n軟件 程序 數據 文檔軟件的生存周期與開發模型n生存周期與選擇的開發模型有關n軟件開發模型n瀑布模型n增量模型n迭代
9、模型n原型模型軟件生存周期(一般說法)n立項(或簽約)、下達任務書n需求分析n概要設計n詳細設計n編碼實現n軟件測試n軟件發布與實施n軟件維護n版本更新或退役瀑布模型n軟件在生存周期中不同的階段,自上而下,互相銜接,逐級下落,具有固定的次序n適合于結構化面向過程的軟件開發方法n特點n里程碑或基線驅動,或文檔驅動n過程逆轉性差或不可逆轉瀑布模型n缺點:問題堆積n克服:嚴格的里程碑管理制度(微軟) 階段評審和不符合項的動態跟蹤(CMM)n仍廣泛使用的模型增量模型n用遞增方式進行軟件開發。軟件作為一組增量部件,每次設計、實現、集成、測試和交付一塊部件,直到所有部件全部實現為止。n軟件系統本身模塊化,
10、單個模塊高內聚,模塊之間低耦合,模塊可組裝拆卸增量模型n特點n任務或功能模塊驅動,可分階段提交n有多個任務單迭代模型n針對瀑布模型的缺點。采取循環的工作方式,每次循環使工作產品接近目標一次n多次執行各個開發工作流程,最終交付一系列逐步完善的實施成果。迭代模型n一次迭代n每次按順序完成一系列工作流程n以次要里程碑(Minor Milestone)結束n需對迭代結果進行評估n迭代發布的產品n是開發過程最終產品的子集迭代模型n迭代生存周期4個階段n初始階段:確定系統的業務和項目的范圍n精化階段:分析問題域、細化產品定義、定義系統架構并建立基線n構建階段:反復開發,完善產品n移交階段:將產品交付用戶,
11、安裝、培訓、交付、維護等迭代模型n面向對象的工具(如Rose)和UML比較適合迭代方法原型模型n在初步需求分析之后,馬上向客戶展現一個軟件產品原型,根據客戶試用意見不斷修改原型,直到客戶確認為止。n特點:原型驅動,需要有一個原型或原型的核心n快速原型法n缺點:不利于開發人員的創新軟件工程n軟件工程是研究軟件開發和軟件管理的一門工程科學。n現代軟件工程研究的內容: 序號 研究方面 具體內容 1軟件開發模型 軟件開發周期(瀑布模型、增量模型、原型模型、迭代模型) 2軟件開發方法面向過程方法、面向對象、面向數據 3軟件支持過程如CASE工具、北大青鳥、PowerDesigner 4軟件管理過程 IS
12、O9000、CMM 軟件工程的三要素n軟件工程的開發方法n支持開發方法的工具n軟件管理過程軟件工程的基本原理nB.W.Boehm 于1983年提出1.用分階段的生存周期計劃嚴格管理軟件開發。階段劃分為計劃、分析、設計、編程、測試和運行維護。 2.堅持實行階段評審。上一階段評審不通過,就不能進入下一階段開發 3.實行嚴格的產品版本控制。 4.采用現代程序設計技術。 5.結果應能清楚地審查。因此對文檔有嚴格要求。 6.開發小組的成員要少而精。 7.要不斷地改進軟件工程的技術和經驗。 軟件開發項目的管理 n項目管理的要素:質量、進度、費用、資源利用 n軟件評價標準:正確性、易用性(界面友好)、效率、
13、可靠性、可維護性、與可重用性 n單個程序員的標準:了解程序設計的基本知識和技能、了解所涉及的應用領域、熟悉軟件開發的技術與環境 軟件開發項目的管理 n項目組對程序員的要求:嚴格限于本模塊范圍、嚴格按總體設計的要求、按統一規定存取公用數據、按統一規格命名標識符、按統一要求編寫文檔、保持程序風格的一致 n對軟件開發項目組的評價(CMM模型):有嚴格成文的工作規范和文檔標準、有嚴格的分工、有詳細的工作進度表并得到嚴格執行 軟件工程的三要素n軟件工程的開發方法n支持開發方法的工具n軟件管理過程軟件工程的支持過程n軟件工程的過程n指軟件生存周期(Life Cycle)中的時間序列 。n例如可將一個軟件的
14、生存周期劃分為市場調研、立項、需求分析、策劃、概要設計、詳細設計、編程、單體測試、集成測試、運行和維護這幾個過程 軟件工程的支持過程n由支持軟件生存周期各個階段的生產工具所組成。生產工具諸如需求分析工具、設計工具、實現工具、測試工具、維護工具、配置工具、開發環境(又稱為CASE工具)。n軟件開發環境,是指能夠連續的支持多個開發階段的CASE工具。 說明n本課程按軟件工程各不同階段來介紹需要的工具和實現的功能 n以實際工具中可能用到的為主,以微軟、或容易獲得的開源的工具為重點。 1.1軟件開發工具的由來軟件開發工具的由來n計算機語言的發展階段:第一代:機器語言;第二代匯編語言;第三代:高級程序設
15、計語言;第四代:非過程化語言n非過程化語言的思想:人們希望機器能自動地完成更多的工作,包括自動安排某些工作順序,二做到只要給機器下達需要做什么的命令,由機器自己去安排執行的順序。軟件危機軟件危機n 軟件危機(Software Crisis) 是計算機軟件在它的開發和維護過程中所遇到的一系列嚴重問題。概括地說,主要包含兩方面的問題:如何開發軟件,怎樣滿足對軟件日益增長的需求;如何維護數量不斷膨脹的已有軟件。 軟件危機的主要表現:軟件危機的主要表現: n 1. 對軟件開發成本和進度的估計常常很不準確。 實際成本比估計成本有可能高出一個數量級,實際進度比預期進度拖延幾個月甚至幾年的現象并不罕見。這種
16、現象降低了開發組織的信譽。為趕進度和節約成本所采取的權宜之計往往又損害了軟件產品的質量,從而不可避免地引起用戶的不滿。 n 2. 用戶對“已完成的”軟件系統不滿意的現象經常發生。 軟件開發人員常常在對用戶需求只有模糊的了解,甚至對所要解決的問題還沒有確切認識的情況下,就倉促上陣匆忙著手編寫程序。軟件開發人員和用戶之間的交流往往很不充分,“閉門造車”必然導致最終產品不符合用戶實際需要。 n3. 軟件產品的質量常常靠不住。 軟件可靠性和質量保證的確切定量概念剛剛出現,軟件質量保證技術(審查、復審和測試)還沒有堅持不懈地應用到軟件開發的全過程中,這些都會導致軟件產品發生質量問題。n4. 軟件常常是不
17、可維護的。 程序中的錯誤很難改正,實際上不可能使這些程序適應新的硬件環境,也不能根據用戶的需求在原有程序中增加新的功能。n5. 軟件通常沒有適當的文檔資料。軟件不僅是程序,還應該有一整套文檔資料。這些文檔資料是在軟件開發過程中產生出來的,而且應該是“最新的”(與代碼完全一致)。缺乏文檔必然給軟件的開發和維護帶來許多嚴重的困難和問題。n 6. 軟件成本在計算機系統總成本中所占比例逐年上升。隨著微電子技術的進步和生產自動化程度的提高,硬件成本逐年下降,然而軟件開發需要大量的人力,軟件成本隨著通貨膨脹以及軟件規模和數量的不斷擴大而逐年上升。美國在1995年的調查表明,軟件成本大約已占計算機系統總成本
18、的90%。 l通用軟件的弱點:1.由許多工作是通用軟件不能完成的;2.某些工作只能表現表面的形式,不能反映其邏輯內涵;3.難于保持一致性的困難。IBM的AD/Cycle失敗的原因(兩個):1.拘泥于集中式的處理思路;2.背離了開放性的大趨勢n軟件開發工具的出現軟件開發工具的出現 在高級程序設計語言的基礎上,為提高軟件開發的質量和效率,從規劃、分析、設計、測試、成文和管理各方面,對軟件開發者提供各種不同程度的幫助的一類廣泛的軟件。1.2件開發工具的概念件開發工具的概念n軟件開發工具的概念要點:(繼承性與創新)a. 在高級程序設計語言(第三代)之后,軟件技術進一步發展的產物;b. 目的是在人們開發
19、軟件過程中給予人們各種不同方面、程度的支持或幫助c.支持軟件開發的全過程,而不是僅限于編碼或其它的特定工作階段。n硬件和軟件的關系:硬件是軀體,軟件是靈魂。n軟件的特性:軟件是看不見,莫不著的但是發揮重要作用的事先編好的指令系列。軟件是用戶與硬件之間的橋梁。軟件包括程序程序和文檔文檔兩個不可缺少的組成部分。軟件開發的發展階段n第一代計算機語言(機器語言)n第二代計算機語言(匯編語言)n第三代計算機語言(高級程序設計語言)n第四代計算機語言(非過程化語言)n 通用軟件輔助開發工具n軟件開發工具的涌現 專用軟件開發工具n 集成的軟件開發工具軟件開發的發展階段n最初階段 硬 件 算 法機器指令用機器
20、語言開發軟件用戶軟件開發的發展階段n第二階段 硬 件 算 法 機器指令 用 戶 匯編指令用匯編語言開發軟件由匯編程序完成轉換軟件開發的發展階段n第三階段 硬 件 算 法 機器指令 用 戶 程序(高級語言)用高級語言開發軟件由編譯程序完成轉換軟件開發的發展階段n第四階段 硬件 算 法 機器指令 用 戶 程序(高級語言)在各種軟件開發工具幫助下完成由編譯程序完成轉換文檔結構需求設計幾個概念幾個概念n軟件開發工具學(也即軟件開發工具)和軟件開發方法學的區別:前者著重于實際應用和工具開發;后者著重于方法論的研究;后者是前者的理論基礎第四代語言(第四代語言(4GL) n第四代語言的原意是非過程化的程序設
21、計語言。針對以處理過程為中心的第三代語言,它希望通過某些標準處理過程的自動生成,使得用戶可以只說明要求做什么,而把具體的執行步驟的安排交由軟件自動處理。CASE 技術技術 n計算機輔助軟件工程技術可以簡單地定義為軟件開發的自動化,通常簡稱為CASE(Computer Aided Software Engineering)技術。n完整的CASE包括:nCASE方法(快速原型法或迭代方法)nCASE技術(實體關系建模技術或面向對象建模技術) nCASE工具(軟件開發環境,如Rational Rose) (1)CASE 工具nCASE 工具不同于以往的軟件工具,主要體現在以下的幾個方面:n支持專用的
22、個人計算環境;n使用圖形功能對軟件系統進行說明并建立文檔;n將軟件生存期各階段的工作連接在一起;n收集和連接軟件系統中從最初的需求到軟件維護各個環節的所有信息;n用人工智能技術實現軟件開發和維護工作的自動化。(2)CASE的作用nCASE有如下三大作用,這些作用從根本上改變了軟件系統的開發方式。n一個具有快速響應、專用資源和早期查錯功能的交互式開發環境。n對軟件的開發和維護過程中的許多環節實現了自動化。n通過一個強有力的圖形接口,實現了直觀的程序設計。所見即所得所見即所得n在程序設計時,對于界面上的設計只需要用鍵盤或鼠標在屏幕上直接設計,不用手寫代碼。設計人員在屏幕上看到的界面,就是所生成程序
23、的運行界面。可視化編程可視化編程n可視化編程:以“所見即所得”的編程思想為原則,力圖實現編程工作的可視化,即隨時可以看到結果,程序的調整與結果的調整同步進行。即插即用的軟件設計方法即插即用的軟件設計方法 n一部分人專門生產軟件組件,而另一部分人則構造整個軟件的結構,并且把軟件組件插入這個結構,以便迅速地完成大型軟件的研制工作,這就是即插即用的軟件設計方法。 1.3軟件開發工具的功能和性能軟件開發工具的功能和性能n軟件開發過程(階段、成果)第一階段:初始要求的提出成果:軟件功能說明書第二階段:總體設計成果:系統的總體設計文件及各個模塊的設計任務書n第三階段:程序的編寫和文檔的編寫(實現階段)n第四階段:測試或調試階段 包括:模塊的調試和整個軟件的聯調n軟件開發工具的功能:(做什么)a.認識與描述客觀系統; b.儲存和管理開發過程中的信息;c.代碼的編寫或生成; d.文檔的編制和生成; e.軟件項目管理n軟件開發的性能:(做到什么程度) a.表達能力或描述能力; b.保持信息一致性的能力; c.使用方便程度; d.工具可靠程度; e.對硬件和軟件環境要求1.4軟件開發工具的類別軟件開發工具的類別n基于應用領域劃分的工具n 按照應用領域的不同,應用軟件可以分為事務處理、實時應用、嵌入式應用等。隨著個人計算機與人工智能的發展,與這兩個方面相聯系的應用軟件,也取得較大的進展。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目實施的法律風險試題及答案
- 2025-2026學年貴州省六盤水市水城縣三年級數學第一學期期末試題含解析
- 簡單建筑概念分析課件
- 公共關系的信息傳播影響力試題及答案
- 公共關系常見技巧試題及答案
- 行政管理專業的趨勢公共關系學試題及答案
- 項目管理工具應用試題及答案
- 膀胱結石術后健康教育
- 食品和飲用水安全教育
- 經濟師考試常考題型試題及答案
- 五年制高職語文課程標準
- 三高共管六病同防診療路徑與一體化服務指南(2022版)20-39-30
- 項目五 車輛燈光系統故障檢修-教學課件-unlimit
- 智能制造產業園項目投資建設可行性研究報告
- 采煤工作面單體液壓支柱的選擇計算
- 保偏產品簡介
- 搪玻璃攪拌尺寸
- 生物制品制造檢定規程資料講解
- 急性髓性白血病的分類及其進展
- 取水泵站圍堰方案
- 小學一年級寫字教學(課堂PPT)
評論
0/150
提交評論