北京理工大學教學課件_第1頁
北京理工大學教學課件_第2頁
北京理工大學教學課件_第3頁
北京理工大學教學課件_第4頁
北京理工大學教學課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京理工大學教學課件軟件工程

課名:軟件工程參考教材:1、張海藩,軟件工程導論(第5版),清華大學出版社,20082、齊治昌等,軟件工程(第二版),高等教育出版社,20063、鄭人杰等,軟件工程概論,機械工業(yè)出版社,2010教學方式:授課+實驗課時:40教學目的和要求:(1)掌握軟件工程的基本概念(2)學會軟件工程項目開發(fā)過程的分析、設計、編碼要求以及測試、維護的基本策略和方法(3)了解軟件工程項目管理的基本內(nèi)容和方法主要內(nèi)容為:(1)軟件工程概述:軟件工程發(fā)展、過程模型.(2)

軟件工程技術:

軟件工程分析方法、軟件工程系統(tǒng)設計方法、軟件測試技術(3)軟件維護:軟件的可維性、軟件維護的任務及過程、

軟件維護的副作用(4)軟件項目管理技術:軟件項目管理的基本概念、項目計劃、風險分析、軟件質(zhì)量保證、軟件配置管理第一章軟件工程概述第一章軟件工程概述的內(nèi)容1.1引言

1.2

軟件基本概念、分類、特點1.3軟件工程的發(fā)展過程

1.4軟件工程的活動

1.5

軟件過程模型

1.6

Rational統(tǒng)一過程模型

1.1引言為什么要講軟件和軟件工程?唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能更好的開發(fā)出過程受控、質(zhì)量受控的軟件產(chǎn)品。對于軟件和軟件工程的認識是困難的,但軟件開發(fā)過程又存在很多困惑,需要對此有正確的、深刻的認識。1.1引言軟件不僅僅是在計算機運行的程序任何預先定義好的程序步驟的地方,都有軟件的身影軟件的應用領域系統(tǒng)軟件實時軟件商業(yè)軟件工程和科學計算軟件嵌入式軟件個人計算機軟件基于Web的軟件(網(wǎng)站)人工智能軟件1.2.1軟件1.2軟件基本概念、分類、特點

軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,包括程序、數(shù)據(jù)及相關文檔的完整集合。三要素程序:按事先設計的功能、性能要求執(zhí)行的指令

(語句)序列;數(shù)據(jù):使程序能正常操縱信息的數(shù)據(jù)結構;文檔:與程序開發(fā)、維護和使用有關的圖文資料??蓤?zhí)行的計算機軟件定義(GB)與計算機系統(tǒng)的操作有關的計算機程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù)。其中:I=(i1,i2,…,in)

輸入集合。Ij表示一個抽象的輸入數(shù)據(jù)類型O=(O1,O2,…,On)

輸出集合。Oj表示一個抽象的輸出數(shù)據(jù)類型E=(e1,e2,…,en)

構成集合。ei表示一個子系統(tǒng)或一個構件R=(r1,r2,…,rn)

構件關系集合.ri表示一個關系。軟件表示

S=(I,O,E,R)1.2.2軟件的特點1.是邏輯實體,非物理實體,具抽象性;2.沒有明顯的制作過程;3.運行、使用期間不存在磨損、老化;4.軟件的開發(fā)、運行受計算機系統(tǒng)的限制;復雜性高,成本昂貴。涉及社會因素。1.2.3軟件分類軟件從設計、實現(xiàn)、維護和傳統(tǒng)工程有相同的基礎2.基于軟件工作方式:*實時處理*分時處理*交互處理*批處理1.基于軟件大的功能框架:

*系統(tǒng)軟件*支撐(工具)軟件*應用軟件管理者的錯誤觀點:我們已經(jīng)有標準和規(guī)程了我們已經(jīng)有好的開發(fā)平臺和工具了我們可以在開發(fā)進度得不到保障時,可增加開發(fā)人員我們可以外包一部分項目,緩解項目的壓力用戶的錯誤觀點:因為知道項目的目標,可先編程序。不考慮項目將來怎樣,以后要變改就行了開發(fā)者的錯誤觀點:編完程序就大功告成程序未運行前,沒有質(zhì)量問題最后項目完成只提交程序軟件工程,就是寫文檔,增加開發(fā)成本1軟件開發(fā)的錯誤觀點開發(fā)者管理者用戶1.2.4軟件開發(fā)技術面臨的問題1.2.5軟件危機概括地說,軟件危機包含下述兩個方面的問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護數(shù)量不斷膨脹的已有軟件。在軟件開發(fā)和維護的過程中存在這么多嚴重問題,一方面與軟件本身的特點有關,另一方面也和軟件開發(fā)與維護的方法不正確有關。1.2.6.軟件危機的主要特點軟件開發(fā)周期大大超過規(guī)定日期;軟件系統(tǒng)開發(fā)成本高,周期長,質(zhì)量差,滿足不了市場需求;

軟件質(zhì)量無保證軟件系統(tǒng)開發(fā)人員數(shù)量少,質(zhì)量低.軟件系統(tǒng)維護難度大.軟件開發(fā)缺乏合適的工具和方法軟件的版權問題得不到保證1.2.7yet,SuccessHasntComeEasily31%53%成功爭議失敗16%成功的標準:用戶在使用用戶使用軟件很容易做完要做的事

開發(fā)人員寫出的軟件達不到用戶要求:人的能力問題.

當前技術發(fā)展問題系統(tǒng)平臺問題失敗的根本原因1.3軟件工程的發(fā)展1.3.1軟件的發(fā)展在軟件危機形式下,軟件工程誕生了,1968年在北大西洋公約組織(NATO)的德國開的學術會議上,軟件工程術語首次提出1.3.2軟件生命周期(SoftwareLifeCycle)軟件產(chǎn)品或軟件系統(tǒng)從設計、投入使用到被淘汰的全過程工作成果計劃任務書需求規(guī)格說明書設計說明書基本任務理解工作范圍建立軟件結構確定模塊結構定義用戶需求階段計劃需求分析概要設計詳細設計系統(tǒng)分析員開發(fā)組完成人編碼測試維護編寫程序發(fā)現(xiàn)和排除問題運行和管理程序軟件產(chǎn)品改進的軟件產(chǎn)品用戶程序員測試小組1.3.3硬件、軟件生命周期的比較硬件故障率曲線軟件實際故障率曲線生命初期磨損后理想曲線實際曲線由于副作用造成的故障率提高修改故障率故障率時間時間

改正一個問題需付出的代價需求分析結構設計詳細設計編碼集成測試系統(tǒng)測試現(xiàn)場改正一個問題的估計費用改正一個問題估計的工作量20200200010005.02.50.050.5(美元)(人天)1.4軟件工程的定義1IEEE93對軟件工程定義:軟件工程是(1)將系統(tǒng)化的、嚴格約束的、可量化的方法應用于軟件的開發(fā)、運行和維護。即將工程化應用于軟件。(2)在(1)中所述方法的研究IEEE:美國電氣和電子工程師學會:(InstituteofElectricalandElectronicsEngineers)學會設各種專門技術分會,軟件標準分技術委員會為SESS2定義給的四個要點:軟件工程方法和性質(zhì)----系統(tǒng)化、嚴格約束、可量化的方法軟件工程方法的作用和范圍-----軟件的開發(fā)、運行和維護軟件工程方法的目標----即將工程化應用于軟件軟件工程方法的趨勢-----方法的研究在給定成本、進度的前提下,開發(fā)出有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產(chǎn)品。3軟件工程的目標技術的觀點:包括:軟件項目的分析、設計、編碼、測試、維護等技術方法。按軟件技術理論,以高效、健壯、可復用、可維護為目的,研究軟件體系結構、組成以及構造方式、等工程的觀點:包括:軟件項目招標、合同、實施、監(jiān)督、驗收推廣等。以經(jīng)濟管理科學為依據(jù),研究軟件工程的規(guī)劃策略和經(jīng)濟收益等工程問題管理的觀點:包括:軟件項目開發(fā)人員組織控制、進度風險分析和質(zhì)量保證體系等方面。以科學性、高效可行及可測量性為目標來研究工程項目管理4軟件工程的三視圖5軟件工程基本原理1、用分階段的生命周期計劃嚴格管理2、堅持進行階段評審3、實行嚴格的產(chǎn)品控制4、采用現(xiàn)代程序設計技術5、結果應能清楚地審查6、開發(fā)小組的人員應該少而精7、承認不斷改進軟件工程實踐的必要性軟件工程的基本思想生命周期的觀點重視文檔的作用自上而下和逐步細化的思想模塊化的思想反復迭代的思想注意編程風格1.5軟件過程模型軟件工程學的基礎是軟件過程軟件過程貫穿于軟件生命周期中軟件工程學中的方法用于軟件過程的各階段的各項活動中1軟件過程定義工具方法過程質(zhì)量焦點Softwareengineeringlayers質(zhì)量焦點:支持軟件工程的根基就在于對質(zhì)量的關注。過程:軟件工程的過程將技術層結合在一起,使計算機軟件合理和及時開發(fā)出來。方法:涵蓋一系列的任務:需求分析、設計、編程、測試和維護。工具:對過程、方法提供自動或半自動的支持。例CASE集成軟件、硬件或一個軟件工程數(shù)據(jù)庫。根據(jù)不同的項目來定義貫穿于軟件生命周期之中的一組關鍵活動區(qū)域。也稱過程模型2軟件過程的位置和作用3.瀑布模型(線形順序模型)可行性研究與計劃需求分析設計編碼運行維護測試定義階段開發(fā)階段維護階段開發(fā)軟件的特點:過程具有順序性和依賴性不適應需求不確定的項目錯誤最后才發(fā)現(xiàn)開始進程呈阻塞情況

承接上一項活動中接收本項活動所需的對象作為輸入利用輸入進行本項活動。把本項的活動成果傳送下一項對本項工作進行評審,若評審正確才能進行下一項工作確定:系統(tǒng)功能系統(tǒng)性能設計:數(shù)據(jù)結構體系結構接口算法開發(fā)軟件的原則分析:系統(tǒng)需求軟件需求4原型模型聽取用戶意見建造/修改原型用戶測試運行原型原型模型帶來的問題:原型時期的質(zhì)量問題用戶如何理解進度先入為主的非最佳方式不適合原型開發(fā)的領域:

實時控制軟件數(shù)值計算軟件原型產(chǎn)生的步驟需求分析和定義規(guī)格軟件設計的一種工具解決不確定性的工具一種實驗工具開發(fā)同時,作為同步培訓工具原型演化為最終系統(tǒng)軟件維護的輔助工具應用領域需求設計編碼測試集成運行、試用核心系統(tǒng)開發(fā)設計需求編碼測試集成運行、試用第二次迭代反饋反饋5演化(迭代)模型需要足夠的人力資源用戶和設計都成為關鍵適用于MIS形式的系統(tǒng)開發(fā)過程(1)根據(jù)用戶要求開發(fā)出核心系統(tǒng)(2)用戶試用后,提出精化系統(tǒng)、增強系統(tǒng)能力的需求,開發(fā)人員實施開發(fā)的迭代過程6增量模型(遞增模型、增殖模型)

先完成一個系統(tǒng)子集的開發(fā),再按同樣的開發(fā)步驟增加功能(系統(tǒng)子集),如此遞增下去直至滿足全部系統(tǒng)需求。系統(tǒng)的總體設計在初始子集設計階段就應作出設想。分析增量模型設計編碼測試分析設計編碼測試分析設計編碼測試分析設計編碼測試增量1增量2增量3增量4交付的增量1交付的增量2交付的增量3交付的增量4日歷時間7.螺旋模型

瀑布模型和增量模型相結合,增加風險分析用來指導大型軟件項目的開發(fā)將開發(fā)劃分為制定計劃、風險分析、實施工程、客戶評估四類活動沿螺旋線每轉(zhuǎn)一圈,表示開發(fā)出一個更完善的新的軟件版本要點:相似于增量模型,是順序模型與原型過程的統(tǒng)一,強調(diào)版本的升級。活動化分不同更強調(diào):計劃、風險分析、用戶評估與增量模型的區(qū)別:8.噴泉模型演化分析設計實現(xiàn)確認維護1990年B.H.Sollers和J.M.Edwards提出主要用于采用面向?qū)ο蠹夹g的項目噴泉體現(xiàn)迭代和無間隙的特征軟件的某些部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的軟件成分在分析、設計、實現(xiàn)等各項活動之間無明顯邊界9.構件集成模型

構件庫問題域識別構件查找構件生成構件組裝系統(tǒng)查到構件未查到構件模型要點:?基于軟件復用性?形成統(tǒng)一開發(fā)過程?采用統(tǒng)一建模語言35基本需求螺旋螺旋模型第n次迭代原型建造原型第n次迭代維護運行系統(tǒng)需求分析設計編碼測試132578614944GT4GT4GT10111213組合模型要點:幾種模型配合使用以一種模型為主,嵌入其它模型由開發(fā)者選擇開發(fā)路徑?已經(jīng)有先例的項目?問題明確且時間緊的項目?規(guī)模較大且時間緊的項目?需求不確定的項目?帶有突破性技術的項目?客戶難以溝通和理解的項目?明顯復用潛力的項目項目適應模型的規(guī)律(一般情況)

項目情況適用模型瀑布模型增量模型演化模型原型模型螺旋模型原型模型構件模型37Rational統(tǒng)一過程RUPRUP是由IBM公司開發(fā)和維護的過程產(chǎn)品它提供了在開發(fā)機構中分派任務和責任的方法它的目的是在可以預見的日程和預算前提下確保滿足最終用戶需求的高質(zhì)量軟件的產(chǎn)生RUP的優(yōu)越性提高了團隊的生產(chǎn)力創(chuàng)建并維護模型為如何有效地使用UML提供了指導是一個可配置的過程吸收了許多在商業(yè)上得到證明的軟件開發(fā)的最佳實踐經(jīng)驗RUP所吸收的最佳工程實踐經(jīng)驗迭代地開發(fā)軟件需求管理使用基于組件的體系結構可視化的軟件建模驗證軟件質(zhì)量控制軟件的變化RUP的二維結構軟件工程方法學

通常把在軟件生命周期全過程中使用的一整套技術的集合稱為方法學(methodology),也稱為范型(paradigm)。軟件工程方法學包括三個要素,這就是方法、工具和過程。目前使用得最廣泛的軟件工程方法學,分別是傳統(tǒng)方法學和面向?qū)ο蠓椒▽W。43結構化方法PK面向?qū)ο蠓椒?4結構化方法PK面向?qū)ο蠓椒▊鹘y(tǒng)的結構化開發(fā)方法是以功能分析和數(shù)據(jù)分析為基礎,采用分解和抽象的方法找出軟件功能模塊及其之間的連接關系,并找出數(shù)據(jù)的表或視圖以及它們之間的關聯(lián)。但是,該方法使得人們對現(xiàn)實世界的認識與編程之間存在理解上的鴻溝,整個系統(tǒng)的變動和修改十分困難,不便于軟件重用,并且難以適應以突出控制特性的系統(tǒng)要求。45結構化方法PK面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄊ菑默F(xiàn)實世界中客觀存在的事物(即對象)出發(fā),盡可能地運用人類的自然思維方式來構造軟件系統(tǒng)。它運用人類在日常的邏輯思維中經(jīng)常采用的思想方法與原則,例如抽象、分類、繼承、聚合、封裝等,將其貫穿于整個分析和設計過程,實現(xiàn)了客觀世界到計算機系統(tǒng)的平滑過渡,容易為人們所理解,并使得軟件的復用在面向?qū)ο蟮脑O計中成了自然而然的事情。46什么是CASECASE(ComputerAidedSoftwareEngineering)計算機輔助軟件工程是一組工具和方法的集合,用于輔助軟件開發(fā)、維護、管理過程中的各項活動,促進軟件過程的工程化和自動化所有軟件工程方法都需要CASE的相應技術支持用于系統(tǒng)模型的圖形編輯器管理設計實體的數(shù)據(jù)字典生成用戶界面的GUI軟件支持程序糾錯的調(diào)試器代碼生成器…47CASE工具IBMRational公司產(chǎn)品()開發(fā)管理軟件過程:RUP需求管理:Requisite

Pro

可視化建模:Rose自動測試:Robot,TestRealtime,TestManager,XDETester項目管理:ProjectConsole配置管理:ClearCase,ClearQuest開源CASE工具:(

)CVS:應用廣泛的版本管理工具UMLModeler:UML模型圖形編輯工具UML2EJB:將XML表示的UML模型轉(zhuǎn)換成EJB代碼的轉(zhuǎn)換器48進一步說明49軟件工程面臨的挑戰(zhàn)遺留系統(tǒng)的問題遺留系統(tǒng)是指那些過時或存在問題的計算機系統(tǒng),通常是許多年以前開發(fā)的挑戰(zhàn):既要以合理的成本維護和更新系統(tǒng),又要能夠繼承系統(tǒng)中重要的商業(yè)信息和服務異構系統(tǒng)的問題網(wǎng)絡環(huán)境下包含不同的硬件平臺和軟件系統(tǒng)挑戰(zhàn):需要提出新的開發(fā)技術,能夠使所開發(fā)的軟件系統(tǒng)運行在不同的硬件平臺和系統(tǒng)環(huán)境下50軟件工程面臨的挑戰(zhàn)高可信軟件開發(fā)的要求軟件的重要作用要求正確性、可靠性、安全性等可信性質(zhì)挑戰(zhàn):如何在軟件的開發(fā)和運行中保證其具有高可信的性質(zhì)軟件開發(fā)方式的變化網(wǎng)絡時代帶來的沖擊挑戰(zhàn):研究分布式的軟件體系結構和開發(fā)模式,探索與之相適應的軟件工程策略51軟件工程知識體系軟件工程知識體系(SWEBOK)IEEE計算機學會發(fā)起研究,從而促進軟件工程發(fā)展成為獨立的專業(yè)學科2001年5月完成,發(fā)布“SWEBOK指南V1.00(試用版)”SWEBOK的組成將軟件工程知識分解成若干知識域,形成層次化的組成結構10個知識域軟

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論