軟件工程基本概念課件_第1頁
軟件工程基本概念課件_第2頁
軟件工程基本概念課件_第3頁
軟件工程基本概念課件_第4頁
軟件工程基本概念課件_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章軟件工程基本概念第一章軟件工程基本概念11.1軟件什么是軟件?軟件一般認為由三部分組成:程序:在運行時,能提供所希望的功能和性能的指令集。數(shù)據(jù)結構:使程序能夠正確運行的數(shù)據(jù)結構文檔:描述程序研制過程、方法及使用的文檔1.1軟件什么是軟件?21.1軟件軟件的特點抽象性:邏輯實體,可記錄,但看不到可復制性:與開發(fā)成本相比,復制成本很低無折舊受硬件制約未完全擺脫手工工藝開發(fā)費用高1.1軟件軟件的特點31.2軟件危機一、計算機軟件發(fā)展的三個時期1.早期時代(60年代中期之前)程序設計階段硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。2.第二代(60年代中期-70年代中期)程序系統(tǒng)階段出現(xiàn)“軟件作坊”、產(chǎn)品軟件;“個體化”開發(fā)方法。3.第三代(70年代中期之后)軟件工程階段軟件開發(fā)成為一門新興的工程學科——軟件工程。1.2軟件危機一、計算機軟件發(fā)展的三個時期4計算機軟件發(fā)展的三個時期及特點計算機軟件發(fā)展的三個時期及特點5計算機軟件發(fā)展的三個時期及特點計算機軟件發(fā)展的三個時期及特點61.2軟件危機二、什么是軟件危機軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。主要是兩個問題。1.如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求。2.如何維護數(shù)量不斷膨脹的已有軟件1.2軟件危機二、什么是軟件危機71.2軟件危機三、軟件危機的主要表現(xiàn)1.對軟件開發(fā)成本和進度的估計不準確2.用戶不滿意3.軟件質(zhì)量不高、可靠性差4.軟件常常不可維護、錯誤難以改正。5.缺乏適當?shù)奈臋n資料6.軟件成本占系統(tǒng)總成本的比例逐年上升7.軟件開發(fā)速度跟不上計算機發(fā)展速度1.2軟件危機三、軟件危機的主要表現(xiàn)81.2軟件危機四、產(chǎn)生軟件危機的原因1.與軟件本身的特點有關軟件不同于硬件,它是計算機系統(tǒng)的邏輯部件而不是物理部件。在寫出程序代碼并在計算機運行之前,軟件開發(fā)過程的進展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評價。因此,管理和控制軟件開發(fā)過程相當困難。2.軟件不易于維護(1)軟件維護通常意味著改正或修改原來的設計,客觀上使軟件較難維護。1.2軟件危機四、產(chǎn)生軟件危機的原因91.2軟件危機四、產(chǎn)生軟件危機的原因2.軟件不易于維護(2)軟件不同于一般程序,它的規(guī)模大,不易于維護。3.在軟件開發(fā)過程中,或多或少地采用了錯誤的方法和技術。4.對用戶需求沒有完整準確的認識,就匆忙著手編寫程序。1.2軟件危機四、產(chǎn)生軟件危機的原因101.2軟件危機五、解決軟件危機的途徑1.技術措施使用更好的軟件開發(fā)方法和開發(fā)工具2.組織管理措施軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。1.2軟件危機五、解決軟件危機的途徑111.3軟件工程一、什么是軟件工程軟件工程是指導計算機軟件開發(fā)和維護的工程學科。它采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。軟件工程是一門涉及軟件計劃、需求分析、設計、編碼、測試和維護的原理、方法及工具的研究和應用的學科。1.3軟件工程一、什么是軟件工程121.3軟件工程二、軟件工程的基本原理1968年在聯(lián)邦德國召開的國際會議上正式“軟件工程”術語。目前有100多條關于軟件工程的準則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。1.3軟件工程二、軟件工程的基本原理131.3軟件工程1.用分階段的生命周期計劃嚴格管理經(jīng)統(tǒng)計表明,不成功的軟件項目中有一半左右是由于計劃不周造成的。Boehm認為,在軟件的整個生命周期中應制定并嚴格執(zhí)行六類計劃:項目概要計劃、里程碑計劃、項目控制計劃、產(chǎn)品控制計劃、驗證計劃、運行維護計劃。1.3軟件工程1.用分階段的生命周期計劃嚴格管理141.3軟件工程2.堅持進行階段評審大部分錯誤是在編碼之前造成的錯誤發(fā)現(xiàn)與改正得越晚,所需付出的代價越高。因此,在每個階段都進行嚴格的評審,以便盡早發(fā)現(xiàn)在軟件開發(fā)過程的錯誤1.3軟件工程2.堅持進行階段評審151.3軟件工程3.實行嚴格的產(chǎn)品控制在軟件開發(fā)過程中不要隨意改變需求,因為改變某項需求往往需要付出較高的代價,但在實踐中用戶往往會提出需求變更,因此需要采取科學的產(chǎn)品控制技術。目前主要實行基準配置管理:基準配置是指經(jīng)過階段評審后的軟件配置成分,如各個階段產(chǎn)生的文檔或程序代碼。對涉及基準配置的修改,必須經(jīng)過嚴格的評審,通過后才能實施修改。1.3軟件工程3.實行嚴格的產(chǎn)品控制161.3軟件工程4.采用現(xiàn)代程序設計技術實踐表明:采用先進的技術既可提高軟件開發(fā)的效率,又可提高軟件維護的效率。80年代及之前:結構化分析、設計技術90年代:面向?qū)ο蠓治?、設計技術1.3軟件工程4.采用現(xiàn)代程序設計技術171.3軟件工程5.結果應能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,開發(fā)過程難以評價和管理。根據(jù)軟件開發(fā)項目的總目標及完成期限,規(guī)定開發(fā)組織的責任和產(chǎn)品標準,使所得的結果能夠清楚地審查1.3軟件工程5.結果應能清楚地審查181.3軟件工程6.開發(fā)小組的人員應該少而精開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。開發(fā)小組人員數(shù)目的增加,使相互交流復雜、費用增加。1.3軟件工程6.開發(fā)小組的人員應該少而精191.3軟件工程7.承認不斷改進軟件工程實踐的必要性遵循前6條基本原理,就能夠按照當代軟件工程基本原理實現(xiàn)軟件的工程化生產(chǎn),但不能保證趕上時代前進的步伐。積極主動采納新的軟件技術,且不斷總結經(jīng)驗。1.3軟件工程7.承認不斷改進軟件工程實踐的必要性201.3軟件工程三、軟件工程的傳統(tǒng)途徑軟件工程的傳統(tǒng)途徑是“生命周期法”,強調(diào)“結構化分析、結構化設計”。1.“生命周期法”的起源人類解決復雜問題時普遍采用的一個策略是“各個擊破”,也就是對問題進行分解,然后再分別解決各個子問題的策略。軟件工程采用的“生命周期法”,就是從時間角度對軟件開發(fā)和維護的復雜問題進行分解,把軟件生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然后再逐步完成每個階段的任務。1.3軟件工程三、軟件工程的傳統(tǒng)途徑211.3軟件工程2.生命周期劃分的原則各階段的任務彼此間盡可能相對獨立,同一個階段各項任務的性質(zhì)盡可能相同,從而降低每個階段任務的復雜性,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。3.生命周期的劃分軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(fā)(總體設計、詳細設計、編碼和單元測試、綜合測試)、軟件維護等三個時期。1.3軟件工程2.生命周期劃分的原則22生命周期法各階段的工作小結生命周期法各階段的工作小結23生命周期法各階段的工作小結生命周期法各階段的工作小結241.3軟件工程4.“生命周期法”的特點階段具有順序性和依賴性推遲實現(xiàn)的觀點質(zhì)量保證的觀點每個階段都必須完成規(guī)定的文檔每個階段結束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。1.3軟件工程4.“生命周期法”的特點251.4軟件開發(fā)過程模型一、瀑布模型典型瀑布模型具有順序性和依賴性1.4軟件開發(fā)過程模型一、瀑布模型261.4軟件開發(fā)過程模型瀑布模型的特征從上一項活動中接受該項活動的工作對象,作為輸入。利用這一輸入實施該項活動應完成的內(nèi)容給出該項活動的工作成果,作為輸出傳給下一項活動對該項活動實施的工作進行評審。若其工作得到確認,則繼續(xù)下一項活動。1.4軟件開發(fā)過程模型瀑布模型的特征271.4軟件開發(fā)過程模型軟件維護往往經(jīng)歷軟件生存期的各個階段,從而構成生存期循環(huán)。1.4軟件開發(fā)過程模型軟件維護往往經(jīng)歷軟件生存期的各個階281.4軟件開發(fā)過程模型具有維護循環(huán)的軟件生存期的瀑布模型1.4軟件開發(fā)過程模型具有維護循環(huán)的軟件生存期的瀑布模型291.4軟件開發(fā)過程模型瀑布模型的缺點:從認識論角度看,人的認識是一個多次反復循環(huán)的過程,不可能一次完成。但瀑布模型中劃分的幾個階段,沒有反映出這種認識過程的反復性。軟件開發(fā)是一個知識密集型的開發(fā)活動,需要相互合作完成,但瀑布模型沒有體現(xiàn)這一點。1.4軟件開發(fā)過程模型瀑布模型的缺點:301.4軟件開發(fā)過程模型二、原型模型1.基本思想在獲取一組基本的需求定義后,利用高級軟件工具的可開發(fā)環(huán)境,快速地建立一個目標系統(tǒng)的最初版本,并把它交給用戶試用、補充和修改,再進行新的版本開發(fā)。反復進行這個過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。經(jīng)過這樣一個反復補充和修改的過程,應用系統(tǒng)的“最初版本”就逐步演變?yōu)橄到y(tǒng)的“最終版本”。1.4軟件開發(fā)過程模型二、原型模型311.4軟件開發(fā)過程模型原型:一個具體的可執(zhí)行模型,它實現(xiàn)了系統(tǒng)的若干功能。原型法:不斷地運行系統(tǒng)“原型”來進行啟發(fā)、揭示和判斷的系統(tǒng)開發(fā)方法。1.4軟件開發(fā)過程模型原型:一個具體的可執(zhí)行模型,它實現(xiàn)321.4軟件開發(fā)過程模型2.原型模型1.4軟件開發(fā)過程模型2.原型模型331.4軟件開發(fā)過程模型在“需求分析”、“原型設計”兩個階段中,開發(fā)者和用戶一起為想象中的系統(tǒng)的某些主要部分定義需求和規(guī)格說明,并由開發(fā)者在規(guī)格說明級用原型描述語言構造一個系統(tǒng)原型,它代表了部分系統(tǒng),包括那些為滿足用戶需求的必要屬性。該原型可用來幫助分析和設計工作,而不是一個軟件產(chǎn)品。

1.4軟件開發(fā)過程模型在“需求分析”、“原型設計”兩個階341.4軟件開發(fā)過程模型在演示原型期間,用戶可以根據(jù)他所期望的系統(tǒng)行為來評價原型的實際行為。如果原型不能滿意地運行,用戶能立刻找出問題和不可接受的地方,并與開發(fā)者重新定義需求。該過程一直持續(xù)到用戶認為該原型能成功地體現(xiàn)想象中的系統(tǒng)的主要部分功能為止。在這期間,用戶和開發(fā)者都不要為程序算法或設計技巧等枝節(jié)問題分心,而是要確定開發(fā)者是否理解了用戶的意思,同時試驗實現(xiàn)它們的若干方法。1.4軟件開發(fā)過程模型在演示原型期間,用戶可以根據(jù)他所期351.4軟件開發(fā)過程模型有了滿意的系統(tǒng)原型,同時也積累了使用原型的經(jīng)驗,用戶常會提出新目標,從而進一步重新原型周期。新目標的范圍要比修改或補充不滿意的原型大。1.4軟件開發(fā)過程模型有了滿意的系統(tǒng)原型,同時也積累了使361.4軟件開發(fā)過程模型3.原型特征軟件原型是軟件的最初版本,以最少的費用、最短的時間開發(fā)出的、以反映最后軟件的主要特征的系統(tǒng)。它具有以下特征:(1)它是一個可實際運行的系統(tǒng)。1.4軟件開發(fā)過程模型3.原型特征371.4軟件開發(fā)過程模型(2)它沒有固定的生存期。一種極端是扔掉原型(以最簡便方式大量借用已有軟件,做出最后產(chǎn)品的模型,證實產(chǎn)品設想是成功的,但產(chǎn)品中并不使用);另一種極端是最終產(chǎn)品的一部分即增量原型(先做出最終產(chǎn)品的核心部分,逐步增加補充模塊),演進原型居于其中(每一版本扔掉一點,增加一點,逐步完善至最終產(chǎn)品)。1.4軟件開發(fā)過程模型(2)它沒有固定的生存期。一種極端381.4軟件開發(fā)過程模型(3)從需求分析到最終產(chǎn)品都可作原型,即可為不同目標作原型。(4)它必須快速、廉價。(5)它是迭代過程的集成部分,即每次經(jīng)用戶評價后修改、運行,不斷重復雙方認可。1.4軟件開發(fā)過程模型(3)從需求分析到最終產(chǎn)品都可作原391.4軟件開發(fā)過程模型4.原型法的評價優(yōu)點1.原型法在得到良好的需求定義上比傳統(tǒng)生存周期法好得多,可處理模糊需求,開發(fā)者和用戶可充分通信。2.原型系統(tǒng)可作為培訓環(huán)境,有利于用戶培訓和開發(fā)同步,開發(fā)過程也是學習過程。3.原型給用戶以機會更改心中原先設想的、不盡合理的最終系統(tǒng)。4.原型可低風險開發(fā)柔性較大的計算機系統(tǒng)。5.原型增加使系統(tǒng)更易維護、對用戶更友好的機會。6.原型使總的開發(fā)費用降低,時間縮短。1.4軟件開發(fā)過程模型4.原型法的評價401.4軟件開發(fā)過程模型缺點1.“模型效應”或“管中窺豹”。對于開發(fā)者不熟悉的領域把次要部分當作主要框架,做出不切題的原型。2.原型迭代不收斂于開發(fā)者預先的目標。即每次更改,為了消除錯誤,次要部分越來越大,“淹沒”了主要部分。3.原型過快收斂于需求集合,而忽略了一些基本點。4.資源規(guī)劃和管理較為困難,隨時更新文檔也帶來麻煩。5.長期在原型環(huán)境上開發(fā),只注意得到滿意的原型,容易“遺忘”用戶環(huán)境和原型環(huán)境的差異。1.4軟件開發(fā)過程模型缺點411.4軟件開發(fā)過程模型適用范圍:原型開發(fā)可以應用于軟件生存周期的不同階段,也可以替代生存期的部分或全部階段,具體可以用于以下領域:1.輔助分析和確定用戶需求的任務。2.作為軟件設計的一種工具。例如:研究系統(tǒng)設計的可行性和適應性。3.作為一種解決不確定性的工具。例如:研究一種新技術的效果,逐步使其適應預定的環(huán)境。4.作為一種實驗工具。5.充作同步培訓工具。6.“一次性”的應用。例如寫一個能運行的程序,一旦得到答案,該程序?qū)⒉辉偈褂谩?.作為軟件維護的輔助工具。特別是在用戶需求不穩(wěn)定,維護工作量很大的情況下,要求大量的重新設計工作。1.4軟件開發(fā)過程模型適用范圍:原型開發(fā)可以應用于軟件生421.4軟件開發(fā)過程模型不適用范圍1.嵌入式軟件2.實時控制軟件3.科技數(shù)值計算軟件1.4軟件開發(fā)過程模型不適用范圍431.4軟件開發(fā)過程模型三、噴泉模型噴泉模型認為軟件生命周期的各個階段是相互重疊和多次反復的。主要用于面向?qū)ο蠓椒ㄖ?.4軟件開發(fā)過程模型三、噴泉模型441.4軟件開發(fā)過程模型四、螺旋模型在原型基礎上,進行多次原型反復并增加風險評估,形成螺旋模型。1.4軟件開發(fā)過程模型四、螺旋模型451.4軟件開發(fā)過程模型1.4軟件開發(fā)過程模型461.4軟件開發(fā)過程模型1.4軟件開發(fā)過程模型471.4軟件開發(fā)過程模型螺旋模型分析在螺旋模型結構中,維護只是螺旋模型的另一個周期,在維護和開發(fā)之間本質(zhì)上并沒有區(qū)別,從而解決了做太多測試或未作足夠測試所帶來的風險。適用條件內(nèi)部的大規(guī)模軟件的開發(fā),不太適合合同軟件。一般只適用于大規(guī)模軟件的開發(fā)1.4軟件開發(fā)過程模型螺旋模型分析481.5軟件開發(fā)方法結構化分析、設計JACKSON設計方法面向?qū)ο蠓治?、設計1.5軟件開發(fā)方法結構化分析、設計49作業(yè)1.計算機發(fā)展三個時期及特點2.什么是軟件危機?為什么會產(chǎn)生軟件危機?怎樣消除軟件危機?3.什么是軟件工程?軟件生命期為什么要劃分成階段?怎樣劃分?各階段有何特點?作業(yè)1.計算機發(fā)展三個時期及特點50第一章軟件工程基本概念第一章軟件工程基本概念511.1軟件什么是軟件?軟件一般認為由三部分組成:程序:在運行時,能提供所希望的功能和性能的指令集。數(shù)據(jù)結構:使程序能夠正確運行的數(shù)據(jù)結構文檔:描述程序研制過程、方法及使用的文檔1.1軟件什么是軟件?521.1軟件軟件的特點抽象性:邏輯實體,可記錄,但看不到可復制性:與開發(fā)成本相比,復制成本很低無折舊受硬件制約未完全擺脫手工工藝開發(fā)費用高1.1軟件軟件的特點531.2軟件危機一、計算機軟件發(fā)展的三個時期1.早期時代(60年代中期之前)程序設計階段硬件通用,軟件專用;程序規(guī)模小,編寫者和使用者為同一人(同組人)。2.第二代(60年代中期-70年代中期)程序系統(tǒng)階段出現(xiàn)“軟件作坊”、產(chǎn)品軟件;“個體化”開發(fā)方法。3.第三代(70年代中期之后)軟件工程階段軟件開發(fā)成為一門新興的工程學科——軟件工程。1.2軟件危機一、計算機軟件發(fā)展的三個時期54計算機軟件發(fā)展的三個時期及特點計算機軟件發(fā)展的三個時期及特點55計算機軟件發(fā)展的三個時期及特點計算機軟件發(fā)展的三個時期及特點561.2軟件危機二、什么是軟件危機軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。主要是兩個問題。1.如何開發(fā)軟件,怎樣滿足對軟件的日益增長的需求。2.如何維護數(shù)量不斷膨脹的已有軟件1.2軟件危機二、什么是軟件危機571.2軟件危機三、軟件危機的主要表現(xiàn)1.對軟件開發(fā)成本和進度的估計不準確2.用戶不滿意3.軟件質(zhì)量不高、可靠性差4.軟件常常不可維護、錯誤難以改正。5.缺乏適當?shù)奈臋n資料6.軟件成本占系統(tǒng)總成本的比例逐年上升7.軟件開發(fā)速度跟不上計算機發(fā)展速度1.2軟件危機三、軟件危機的主要表現(xiàn)581.2軟件危機四、產(chǎn)生軟件危機的原因1.與軟件本身的特點有關軟件不同于硬件,它是計算機系統(tǒng)的邏輯部件而不是物理部件。在寫出程序代碼并在計算機運行之前,軟件開發(fā)過程的進展情況較難衡量,軟件開發(fā)的質(zhì)量也較難評價。因此,管理和控制軟件開發(fā)過程相當困難。2.軟件不易于維護(1)軟件維護通常意味著改正或修改原來的設計,客觀上使軟件較難維護。1.2軟件危機四、產(chǎn)生軟件危機的原因591.2軟件危機四、產(chǎn)生軟件危機的原因2.軟件不易于維護(2)軟件不同于一般程序,它的規(guī)模大,不易于維護。3.在軟件開發(fā)過程中,或多或少地采用了錯誤的方法和技術。4.對用戶需求沒有完整準確的認識,就匆忙著手編寫程序。1.2軟件危機四、產(chǎn)生軟件危機的原因601.2軟件危機五、解決軟件危機的途徑1.技術措施使用更好的軟件開發(fā)方法和開發(fā)工具2.組織管理措施軟件開發(fā)不是某種個體勞動的神秘技巧,而應該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。1.2軟件危機五、解決軟件危機的途徑611.3軟件工程一、什么是軟件工程軟件工程是指導計算機軟件開發(fā)和維護的工程學科。它采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。軟件工程是一門涉及軟件計劃、需求分析、設計、編碼、測試和維護的原理、方法及工具的研究和應用的學科。1.3軟件工程一、什么是軟件工程621.3軟件工程二、軟件工程的基本原理1968年在聯(lián)邦德國召開的國際會議上正式“軟件工程”術語。目前有100多條關于軟件工程的準則,其中最出名的是著名軟件工程專家B.W.Boehm在1983年提出的7條基本原理。1.3軟件工程二、軟件工程的基本原理631.3軟件工程1.用分階段的生命周期計劃嚴格管理經(jīng)統(tǒng)計表明,不成功的軟件項目中有一半左右是由于計劃不周造成的。Boehm認為,在軟件的整個生命周期中應制定并嚴格執(zhí)行六類計劃:項目概要計劃、里程碑計劃、項目控制計劃、產(chǎn)品控制計劃、驗證計劃、運行維護計劃。1.3軟件工程1.用分階段的生命周期計劃嚴格管理641.3軟件工程2.堅持進行階段評審大部分錯誤是在編碼之前造成的錯誤發(fā)現(xiàn)與改正得越晚,所需付出的代價越高。因此,在每個階段都進行嚴格的評審,以便盡早發(fā)現(xiàn)在軟件開發(fā)過程的錯誤1.3軟件工程2.堅持進行階段評審651.3軟件工程3.實行嚴格的產(chǎn)品控制在軟件開發(fā)過程中不要隨意改變需求,因為改變某項需求往往需要付出較高的代價,但在實踐中用戶往往會提出需求變更,因此需要采取科學的產(chǎn)品控制技術。目前主要實行基準配置管理:基準配置是指經(jīng)過階段評審后的軟件配置成分,如各個階段產(chǎn)生的文檔或程序代碼。對涉及基準配置的修改,必須經(jīng)過嚴格的評審,通過后才能實施修改。1.3軟件工程3.實行嚴格的產(chǎn)品控制661.3軟件工程4.采用現(xiàn)代程序設計技術實踐表明:采用先進的技術既可提高軟件開發(fā)的效率,又可提高軟件維護的效率。80年代及之前:結構化分析、設計技術90年代:面向?qū)ο蠓治觥⒃O計技術1.3軟件工程4.采用現(xiàn)代程序設計技術671.3軟件工程5.結果應能清楚地審查軟件產(chǎn)品是看不見、摸不著的邏輯產(chǎn)品,開發(fā)過程難以評價和管理。根據(jù)軟件開發(fā)項目的總目標及完成期限,規(guī)定開發(fā)組織的責任和產(chǎn)品標準,使所得的結果能夠清楚地審查1.3軟件工程5.結果應能清楚地審查681.3軟件工程6.開發(fā)小組的人員應該少而精開發(fā)小組人員的素質(zhì)和數(shù)量是影響軟件產(chǎn)品質(zhì)量和開發(fā)效率的重要因素。開發(fā)小組人員數(shù)目的增加,使相互交流復雜、費用增加。1.3軟件工程6.開發(fā)小組的人員應該少而精691.3軟件工程7.承認不斷改進軟件工程實踐的必要性遵循前6條基本原理,就能夠按照當代軟件工程基本原理實現(xiàn)軟件的工程化生產(chǎn),但不能保證趕上時代前進的步伐。積極主動采納新的軟件技術,且不斷總結經(jīng)驗。1.3軟件工程7.承認不斷改進軟件工程實踐的必要性701.3軟件工程三、軟件工程的傳統(tǒng)途徑軟件工程的傳統(tǒng)途徑是“生命周期法”,強調(diào)“結構化分析、結構化設計”。1.“生命周期法”的起源人類解決復雜問題時普遍采用的一個策略是“各個擊破”,也就是對問題進行分解,然后再分別解決各個子問題的策略。軟件工程采用的“生命周期法”,就是從時間角度對軟件開發(fā)和維護的復雜問題進行分解,把軟件生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立的任務,然后再逐步完成每個階段的任務。1.3軟件工程三、軟件工程的傳統(tǒng)途徑711.3軟件工程2.生命周期劃分的原則各階段的任務彼此間盡可能相對獨立,同一個階段各項任務的性質(zhì)盡可能相同,從而降低每個階段任務的復雜性,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。3.生命周期的劃分軟件生命周期一般分為:軟件定義(問題定義、可行性研究、需求分析)、軟件開發(fā)(總體設計、詳細設計、編碼和單元測試、綜合測試)、軟件維護等三個時期。1.3軟件工程2.生命周期劃分的原則72生命周期法各階段的工作小結生命周期法各階段的工作小結73生命周期法各階段的工作小結生命周期法各階段的工作小結741.3軟件工程4.“生命周期法”的特點階段具有順序性和依賴性推遲實現(xiàn)的觀點質(zhì)量保證的觀點每個階段都必須完成規(guī)定的文檔每個階段結束前都要對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。1.3軟件工程4.“生命周期法”的特點751.4軟件開發(fā)過程模型一、瀑布模型典型瀑布模型具有順序性和依賴性1.4軟件開發(fā)過程模型一、瀑布模型761.4軟件開發(fā)過程模型瀑布模型的特征從上一項活動中接受該項活動的工作對象,作為輸入。利用這一輸入實施該項活動應完成的內(nèi)容給出該項活動的工作成果,作為輸出傳給下一項活動對該項活動實施的工作進行評審。若其工作得到確認,則繼續(xù)下一項活動。1.4軟件開發(fā)過程模型瀑布模型的特征771.4軟件開發(fā)過程模型軟件維護往往經(jīng)歷軟件生存期的各個階段,從而構成生存期循環(huán)。1.4軟件開發(fā)過程模型軟件維護往往經(jīng)歷軟件生存期的各個階781.4軟件開發(fā)過程模型具有維護循環(huán)的軟件生存期的瀑布模型1.4軟件開發(fā)過程模型具有維護循環(huán)的軟件生存期的瀑布模型791.4軟件開發(fā)過程模型瀑布模型的缺點:從認識論角度看,人的認識是一個多次反復循環(huán)的過程,不可能一次完成。但瀑布模型中劃分的幾個階段,沒有反映出這種認識過程的反復性。軟件開發(fā)是一個知識密集型的開發(fā)活動,需要相互合作完成,但瀑布模型沒有體現(xiàn)這一點。1.4軟件開發(fā)過程模型瀑布模型的缺點:801.4軟件開發(fā)過程模型二、原型模型1.基本思想在獲取一組基本的需求定義后,利用高級軟件工具的可開發(fā)環(huán)境,快速地建立一個目標系統(tǒng)的最初版本,并把它交給用戶試用、補充和修改,再進行新的版本開發(fā)。反復進行這個過程,直到得出系統(tǒng)的“精確解”,即用戶滿意為止。經(jīng)過這樣一個反復補充和修改的過程,應用系統(tǒng)的“最初版本”就逐步演變?yōu)橄到y(tǒng)的“最終版本”。1.4軟件開發(fā)過程模型二、原型模型811.4軟件開發(fā)過程模型原型:一個具體的可執(zhí)行模型,它實現(xiàn)了系統(tǒng)的若干功能。原型法:不斷地運行系統(tǒng)“原型”來進行啟發(fā)、揭示和判斷的系統(tǒng)開發(fā)方法。1.4軟件開發(fā)過程模型原型:一個具體的可執(zhí)行模型,它實現(xiàn)821.4軟件開發(fā)過程模型2.原型模型1.4軟件開發(fā)過程模型2.原型模型831.4軟件開發(fā)過程模型在“需求分析”、“原型設計”兩個階段中,開發(fā)者和用戶一起為想象中的系統(tǒng)的某些主要部分定義需求和規(guī)格說明,并由開發(fā)者在規(guī)格說明級用原型描述語言構造一個系統(tǒng)原型,它代表了部分系統(tǒng),包括那些為滿足用戶需求的必要屬性。該原型可用來幫助分析和設計工作,而不是一個軟件產(chǎn)品。

1.4軟件開發(fā)過程模型在“需求分析”、“原型設計”兩個階841.4軟件開發(fā)過程模型在演示原型期間,用戶可以根據(jù)他所期望的系統(tǒng)行為來評價原型的實際行為。如果原型不能滿意地運行,用戶能立刻找出問題和不可接受的地方,并與開發(fā)者重新定義需求。該過程一直持續(xù)到用戶認為該原型能成功地體現(xiàn)想象中的系統(tǒng)的主要部分功能為止。在這期間,用戶和開發(fā)者都不要為程序算法或設計技巧等枝節(jié)問題分心,而是要確定開發(fā)者是否理解了用戶的意思,同時試驗實現(xiàn)它們的若干方法。1.4軟件開發(fā)過程模型在演示原型期間,用戶可以根據(jù)他所期851.4軟件開發(fā)過程模型有了滿意的系統(tǒng)原型,同時也積累了使用原型的經(jīng)驗,用戶常會提出新目標,從而進一步重新原型周期。新目標的范圍要比修改或補充不滿意的原型大。1.4軟件開發(fā)過程模型有了滿意的系統(tǒng)原型,同時也積累了使861.4軟件開發(fā)過程模型3.原型特征軟件原型是軟件的最初版本,以最少的費用、最短的時間開發(fā)出的、以反映最后軟件的主要特征的系統(tǒng)。它具有以下特征:(1)它是一個可實際運行的系統(tǒng)。1.4軟件開發(fā)過程模型3.原型特征871.4軟件開發(fā)過程模型(2)它沒有固定的生存期。一種極端是扔掉原型(以最簡便方式大量借用已有軟件,做出最后產(chǎn)品的模型,證實產(chǎn)品設想是成功的,但產(chǎn)品中并不使用);另一種極端是最終產(chǎn)品的一部分即增量原型(先做出最終產(chǎn)品的核心部分,逐步增加補充模塊),演進原型居于其中(每一版本扔掉一點,增加一點,逐步完善至最終產(chǎn)品)。1.4軟件開發(fā)過程模型(2)它沒有固定的生存期。一種極端881.4軟件開發(fā)過程模型(3)從需求分析到最終產(chǎn)品都可作原型,即可為不同目標作原型。(4)它必須快速、廉價。(5)它是迭代過程的集成部分,即每次經(jīng)用戶評價后修改、運行,不斷重復雙方認可。1.4軟件開發(fā)過程模型(3)從需求分析到最終產(chǎn)品都可作原891.4軟件開發(fā)過程模型4.原型法的評價優(yōu)點1.原型法在得到良好的需求定義上比傳統(tǒng)生存周期法好得多,可處理模糊需求,開發(fā)者和用戶可充分通信。2.原型系統(tǒng)可作為培訓環(huán)境,有利于用戶培訓和開發(fā)同步,開發(fā)過程也是學習過程。3

溫馨提示

  • 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

提交評論