1-軟件及軟件工程介紹_第1頁
1-軟件及軟件工程介紹_第2頁
1-軟件及軟件工程介紹_第3頁
1-軟件及軟件工程介紹_第4頁
1-軟件及軟件工程介紹_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章軟件及軟件工程介紹計算機軟件(software)是計算機系統中的程序、數據及其相關文檔的完整集合。是重要的科技領域是軟件產業的核心軟件的作用:產品產品生產載體1軟件的分類1-軟件及軟件工程介紹全文共34頁,當前為第1頁。計算機軟件:重要的科技領域計算機軟件的發展第一階段(1946-1956):科學計算程序,

服務性程序和程序庫,無管理、無文檔第二階段(1956-1968):操作系統,

數據庫管理系統,延期完成、難以維護第三階段(1968-現在):軟件工程階段(1970-1990)面向對象軟件工程階段(1980-現在)21-軟件及軟件工程介紹全文共34頁,當前為第2頁。(漢森人工智能)3返回1-軟件及軟件工程介紹全文共34頁,當前為第3頁。第1章軟件及軟件工程介紹計算機軟件(software)是計算機系統中的程序、數據及其相關文檔的完整集合。是重要的科技領域是軟件產業的核心軟件的作用:產品產品生產載體41-軟件及軟件工程介紹全文共34頁,當前為第4頁。軟件產業的發展階段早期專業的服務公司(1949-1959)早期軟件產品公司(1959-1969)強大的企業解決方案提供商的出現(1969-1981)如Oracle,Sybase(華爾街數據庫提供商),IBM客戶大眾市場軟件(1981-1984)如微軟,Lotus互聯網增值服務(1994年至今)如雅虎、谷歌、騰訊。收入模式不再是通過銷售軟件獲得,而是通過應用來自外部軟件公司的軟件獲得收入。51-軟件及軟件工程介紹全文共34頁,當前為第5頁。全球軟件產業的發展61-軟件及軟件工程介紹全文共34頁,當前為第6頁。第1章軟件及軟件工程介紹計算機軟件(software)是計算機系統中的程序、數據及其相關文檔的完整集合。是重要的科技領域是軟件產業的核心軟件的作用:產品產品生產載體7軟件的分類1-軟件及軟件工程介紹全文共34頁,當前為第7頁。計算機軟件的分類按功能分:系統軟件支撐(工具)軟件應用軟件按工作方式分實時處理軟件分時軟件交互式軟件批處理軟件8例如:操作系統和編譯程序;數據庫管理系統,網絡軟件,RationalRose,軟件開發環境;工程/科學計算軟件,嵌入式軟件,Web應用軟件,人工智能軟件,電子表格,CAD軟件航空訂票、信息查詢一臺主機多個終端,unix操作系統訓練系統、游戲軟件打印機的后臺處理1-軟件及軟件工程介紹全文共34頁,當前為第8頁。按規模分微型軟件(5百行以內);小型(2千行);中型(5萬行)大型(10萬行);甚大型(1百萬行);巨型(1千萬行)按服務對象的范圍分定制(項目)軟件:

軍用指揮系統/衛星控制系統產品軟件:

由軟件開發機構開發直接提供給市場按使用頻度分一次性軟件:普查類軟件高頻度軟件:天氣預報計算軟件按軟件失效的影響分低穩定性軟件:

如游戲軟件;字處理高穩定性軟件:飛船控制系統9返回1-軟件及軟件工程介紹全文共34頁,當前為第9頁。軟件的特性形態特性:不可見的邏輯實體智能特性:凝聚了大量的腦力勞動開發特性:尚未完全擺脫手工方式質量特性:無法得到沒有缺陷的軟件產品生產特性:復制簡單,但開發成本高管理特性:對大規模知識型工作者的智力勞動管理環境特性:依賴于計算機系統環境維護特性:維護工作量很大,修改可能引入副作用廢棄特性:源于技術退化、維護成本提高應用特性:滲入國民經濟和國防的各個領域。101-軟件及軟件工程介紹全文共34頁,當前為第10頁。軟件危機背景1960s,計算機硬件迅速發展,軟件發展滯后表現:軟件開發周期長、成本高、質量差、維護困難原因:缺乏開發經驗和數據積累缺少合適的交流方法和需求描述工具開發過程不規范測試階段檢測不充分111-軟件及軟件工程介紹全文共34頁,當前為第11頁。軟件危機的解決方法充分吸取與借鑒人類長期以來從事各種工程項目所各界的行之有效的原理/概念/技術和方法,吸取以前軟硬件研究與開發的經驗教訓開發軟件工程支撐環境從管理和技術兩方面著手,將軟件開發工作變成一種組織良好/管理嚴密/各類人員協同配合的項目工程結論:按工程化的原則和方法組織軟件開發工作軟件發展改變了人們對軟件的看法,軟件工作的范圍從寫程序擴展到整個軟件生存期。12如何開發軟件?怎樣滿足對軟件日益增長的需求?如何維護數量不斷膨脹的已有軟件?1-軟件及軟件工程介紹全文共34頁,當前為第12頁。軟件生存期又稱為軟件生命周期(Lifecycle)通常分為3個階段:定義、開發和維護

軟件定義

:(做什么)問題定義、可行性研究、需求分析軟件開發:包括設計和實現(如何做)設計包括概要設計、詳細設計實現包括編碼和測試;測試包括單元測試、集成測試運行維護:(保持軟件持久)發布、實施、維護、升級13定義開發運行維護1-軟件及軟件工程介紹全文共34頁,當前為第13頁。軟件工程的框架可概括為:目標、過程和原則。軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。包括開發過程、支持過程、管理過程等。軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。學習研究工程化的軟件開發方法,使開發過程更加規范。培養學生的軟件素質,提高學生的軟件開發能力與軟件項目管理能力。141-軟件及軟件工程介紹全文共34頁,當前為第14頁。15軟件工程框架可用性性性確正合算選取適宜的開發模型采用合適的設計方法提供高質量的工程支持重視軟件工程的管理基本過程支持過程組織過程目標過程原則1-軟件及軟件工程介紹全文共34頁,當前為第15頁。軟件工程的目標軟件工程的目標:是運用先進的軟件開發技術和管理方法來提高軟件的質量和生產率。質量指軟件產品正確、可用。正確性指軟件產品達到預期功能的程度。可用性指軟件基本結構、實現性能及文檔為用戶可用的程度。生產率指開銷適宜。開銷合宜是指軟件開發、運行的整個周期、成本開銷滿足用戶要求的程度。單位是代碼行/人月,功能點/人月。目標:就是生產具有正確性、可用性以及開銷合宜的產品。161-軟件及軟件工程介紹全文共34頁,當前為第16頁。生產率生產率和質量存在內在聯系,但不存在根本對立。影響軟件生產率的主要因素人員素質:開發組織的規模和專長問題因素:問題本身的復雜性,需求和設計約束改變的項數及變化的程度過程因素:使用的分析和設計技術,程序語言和CASE工具及復審技術資源因素:CASE工具,

軟硬件資源的可用性171-軟件及軟件工程介紹全文共34頁,當前為第17頁。軟件質量軟件產品質量:指最終軟件“好”的程度;產品的外部質量:客戶能夠看見的“好”,包括:正確性、可靠性、用戶友好、性能、可維護性、可移植性、可重用性、安全性、健壯性、互操作性、可伸縮性,……產品的內部質量:模塊性好,容易閱讀、容易修改軟件過程質量:軟件生產過程“好”的程度181-軟件及軟件工程介紹全文共34頁,當前為第18頁。軟件質量的評價特性正確性(Correctness)Degreewithwhichsoftwareadherestoitsspecifiedrequirements(軟件功能達到設計規范和需求的程度)可靠性(Reliability)Probabilityoffailure-freesoftwareoperationforaspecifiedperiodoftimeunderpermissibleoperatingconditions(規定時間和條件下軟件能正常維持工作的能力)可使用性:為使用需要的能力,又稱為用戶友好(User-friendliness)Softwaresystemisuserfriendlyifitsusersfinditeasytouse;Auserfriendlysoftwaremaynothaveanyuserinterface.Becausetheusermaybeanotherhardwarethatreceivestheservicesofferedbythesoftware191-軟件及軟件工程介紹全文共34頁,當前為第19頁。效率:在規定條件下軟件實現功能所需資源的有效性,即性能(Performance):DegreewithwhichsoftwarefulfillsitspurposewithoutwastingcomputingresourcesWorstcase,bestcaseandaveragecasetimeandspacecomplexitiesprovideameasureofperformanceforaclassofsoftware可維護性(Maintainability):環境改變或發生故障時恢復正常所做的努力程度。Referstothemodificationsthataremadetoasoftwaresystemafteritsinitialrelease,Typesofmaintenance:Corrective:Correctsoftwareerrors.Adaptive:Satisfynewenvironments,whilekeepingthesamefunctionality.可移植性(Portability):軟件到新環境下所做努力的程度Easewithwhichsoftwarecanbeusedwithdifferentenvironmentssuchasnewhardwareoroperatingsystem201-軟件及軟件工程介紹全文共34頁,當前為第20頁。可重用性(Reusability)Easewithwhichsoftwarecanbereusedindevelopingothersoftware安全性(Security)Dependsonhowvulnerablethesoftwareistotheunauthorizedusers健壯性(Robustness)Degreewithwhichsoftwarebehavesreasonably,evenincircumstancesthatwerenotanticipatedintherequirementsspecification可伸縮性(Scalability)Measureshowwellthesoftwarerespondstoincreasingloadwithfixedresourcesandhowwellittakesadvantageofadditionalresources互操作性(Interoperability)AbilityofasystemtocoexistandcooperatewithotherSystems211-軟件及軟件工程介紹全文共34頁,當前為第21頁。軟件工程的過程軟件工程目標的實現在理論和實踐上均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。軟件開發過程:開發模型和開發方法。軟件支持過程:支持軟件生存周期各個階段的生產工具組成。軟件開發環境是指能夠連續地支持多個開發階段的CASE工具。如Rose。軟件管理過程:就是規范軟件生產的過程,建立軟件過程的標準化,其作用是:為評估軟件組織的生產能力提供了標準;為改進軟件組織的生產過程指明了方向。221-軟件及軟件工程介紹全文共34頁,當前為第22頁。主要在北美、但已受到業界的廣泛關注除非洲少數國家外,幾乎全球流行地區具體、詳盡(CMM1.1本文有500多頁)簡短、概括(ISO9001和ISO9000-3共計不超過25頁)標準文本特點接受SEI授權評估員對申報級的評估(任一級的申請均以低一級為基礎)通過國家注冊審核員的審核,獲得被認可的認證機構的認證如何判定達到要求軟件過程評估及過程的持續改進供方建立質量體系,向顧客做出質量保證注重于分為5級,設有18個關鍵過程域(KPA)23個質量體系要素要求集中體現軟件業

制造業

(后擴展到其它領域)適用行業CMMISO9000常用的標準有ISO9000、CMMI,對比如下:生于同年:兩者初始文本均為80年代后期推出。長于同根:兩者均吸取了一些現代著名質量管理專家的理論。231-軟件及軟件工程介紹全文共34頁,當前為第23頁。軟件工程的原則圍繞工程設計、工程支持和工程管理,提出4條基本原則:

1.選擇適宜的開發模型:與系統設計有關。系統設計中,

軟件需求、硬件需求以及其他因素間是相互制約和影響的,經常需要權衡;

2.采用合適的設計方法:軟件設計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。3.提供高質量的工程支撐:軟件工具與環境對軟件過程的支持頗為重要,軟件工程項目的質量和開銷直接取決于對軟件工程所提供的支撐質量和效用;

4.重視軟件工程的管理:管理直接影響可用資源的有效利用,

生產滿足目標的軟件產品及提高軟件組織的生產能力等問題。241-軟件及軟件工程介紹全文共34頁,當前為第24頁。提高軟件的質量和生產率的目標形成了對軟件過程、過程模型及工程方法在選取上的約束。251-軟件及軟件工程介紹全文共34頁,當前為第25頁。Boehm的7條基本原理圍繞軟件開發、支持和管理所提出的:使用現代程序設計技術堅持嚴格的產品控制重視管理:按軟件生存周期分階段制定計劃并認真實施,堅持進行階段評審,明確責任,用人少而精---------教材第5頁26不斷改進開發過程1-軟件及軟件工程介紹全文共34頁,當前為第26頁。軟件工程研究的內容三要素:方法、工具、過程方法:如結構化方法、面向對象方法。工具:如CASE工具、北大青鳥系統、PowerDesigner、Erwin過程:為獲得高質量的軟件所需要完成的一系列任務的框架,完成各項任務的工作步驟。271-軟件及軟件工程介紹全文共34頁,當前為第27頁。軟件工程的方法軟件開發過程中的方法,方法學(Methodology)也稱為范型(Paradigm):軟件開發主要的兩種方法結構化方法面向對象方法其他方法:面向數據的方法281-軟件及軟件工程介紹全文共34頁,當前為第28頁。結構化方法結構化方法經歷階段:順序完成每個階段,返工帶來成本的增加。理論支持:

數據流程圖,模塊化設計理論,結構化程序設計技術方法支持:

自頂向下,符合一般思維習慣不足:

對用戶需求變化的適應能力較差,數據和操作分離不符合自然界的規律291-軟件及軟件工程介紹全文共34頁,當前為第29頁。面向對象方法面向對象方法經歷階段:

各項開發活動之間是多次反復迭代的演化過程。理論支持:

對象+消息,類的構造優點:

適應用戶需要變化的能力強;復用性好不足:

缺少明確的用戶需求分析,沒有形式化或半形式化的方式規定用戶需求,

缺少支持從抽象到具體的思維過程。301-軟件及軟件工程介紹全文共34頁,當前為第30頁。軟件工程的定義軟件工程(SoftwareEngineering):目前尚無統一定義,常見的定義有:是研究軟件開發和軟件維護或管理的一門工程科學是研究軟件生產各個方面的一門工程科學是研究怎樣利用計算機科學和管理科學的知識,生產出高性價比軟件產品的一門工程科學軟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論