002軟件工程概述_第1頁
002軟件工程概述_第2頁
002軟件工程概述_第3頁
002軟件工程概述_第4頁
002軟件工程概述_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、軟件工程概述二、常用軟件開發(fā)模型三、軟件開發(fā)管理基礎(chǔ)四、CMM簡介教學(xué)內(nèi)容:了解軟件的基本概念軟件的特征軟件危機(jī)、軟件工程軟件生命周期中各個階段的任務(wù)、實(shí)施方法及步驟幾種典型的軟件開發(fā)模型什么是軟件?軟件是計(jì)算機(jī)程序、各種相關(guān)的文檔和數(shù)據(jù)的集合。具體地說,它包括以下幾部分:程序:能以預(yù)期的性能執(zhí)行預(yù)期功能的一段指令;數(shù)據(jù):便于程序操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔:記錄了程序的操作和使用的文檔.許多人常常把某個計(jì)算機(jī)程序叫做軟件,也常常把軟件開發(fā)簡單地說成是編寫一段程序。這些說法不正確。軟件一般分為系統(tǒng)軟件和應(yīng)用軟件兩大類。系統(tǒng)軟件指管理、監(jiān)控和維護(hù)計(jì)算機(jī)資源(包括硬件和軟件)的軟件。包括操作系統(tǒng)、各種程序設(shè)計(jì)語言、編譯軟件和數(shù)據(jù)庫管理系統(tǒng)等。應(yīng)用軟件指用戶利用計(jì)算機(jī)及其提供的系統(tǒng)軟件為解決各種實(shí)際問題而編制的計(jì)算機(jī)程序。包括辦公軟件、電子商務(wù)軟件、字處理軟件和圖形處理軟件等。軟件是邏輯產(chǎn)品,它具有抽象性,通過計(jì)算機(jī)的執(zhí)行才能體現(xiàn)它的功能和作用。其成本主要體現(xiàn)在軟件的開發(fā)和研制上,可進(jìn)行大量的復(fù)制。不存在磨損和老化問題。軟件對開發(fā)、運(yùn)行和硬件等環(huán)境有著不同程度的依賴性,這導(dǎo)致了軟件移植的問題。主要靠腦力勞動生產(chǎn),尚未擺脫手工開發(fā)方式。軟件是復(fù)雜的,而且以后會更復(fù)雜。開發(fā)和維護(hù)成本高。軟件開發(fā)有比較明確的分工。完成特定目的、符合用戶特定需求的軟件所需的組織結(jié)構(gòu)和過程、規(guī)范的集合軟件項(xiàng)目的實(shí)施需要周密的部署,合理的規(guī)章制度,符合項(xiàng)目的路線(軟件過程),良好的項(xiàng)目管理和人員安排。軟件開發(fā)項(xiàng)目分類上級下達(dá)的軟件開發(fā)項(xiàng)目本單位根據(jù)市場需要確定的開發(fā)項(xiàng)目用戶合同要求的軟件開發(fā)項(xiàng)目~6~軟件伴隨計(jì)算機(jī)技術(shù)的發(fā)展經(jīng)歷了三個階段:程序設(shè)計(jì)階段軟件設(shè)計(jì)階段軟件工程階段特點(diǎn):尚無軟件的概念,程序設(shè)計(jì)主要圍繞硬件進(jìn)行開發(fā)規(guī)模很小、工具簡單無明確分工(開發(fā)者和用戶)程序設(shè)計(jì)追求節(jié)省空間和編程技巧,無文檔資料主要是用于科學(xué)計(jì)算特點(diǎn):硬件環(huán)境相對穩(wěn)定,出現(xiàn)“軟件作坊”的開發(fā)組織形式開始使用產(chǎn)品軟件(可購買),從而建立了軟件的概念系統(tǒng)規(guī)模越來越龐大,高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬開發(fā)者和用戶有了明確分工,社會對軟件的需求量劇增但是軟件開發(fā)技術(shù)沒有重大突破,生產(chǎn)效率低下,從而導(dǎo)致“軟件危機(jī)”產(chǎn)生。由于軟件危機(jī)的產(chǎn)生,迫使人們不得不研究、改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件生產(chǎn)進(jìn)入軟件工程時代。特點(diǎn):軟件工程時代的生產(chǎn)方式是工程化生產(chǎn);使用數(shù)據(jù)庫、開發(fā)工具、開發(fā)環(huán)境、網(wǎng)絡(luò)、先進(jìn)的開發(fā)技術(shù)和方法,使生產(chǎn)率大大提高;但未能完全擺脫軟件危機(jī)。1什么是軟件危機(jī)?開發(fā)軟件所需的高成本同產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象就是“軟件危機(jī)”?!败浖C(jī)”是在1968年召開的國際軟件工程會議上被人們普遍認(rèn)識的。軟件危機(jī)包括兩方面的問題:一是如何開發(fā)軟件,怎樣才能滿足軟件日益增長的需要;二是如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。軟件開發(fā)成本及進(jìn)度難以預(yù)測用戶對已完成的軟件系統(tǒng)不滿足軟件產(chǎn)品質(zhì)量無法保證軟件產(chǎn)品難以維護(hù)軟件通常缺少適當(dāng)?shù)奈臋n資料軟件成本逐年提高軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用技術(shù)的迅速普及。IBM公司開發(fā)OS/360系統(tǒng),共有4000多個模塊,約100萬條指令,投入5000人年,耗資數(shù)億美元,結(jié)果還是延期交付。在交付使用后的系統(tǒng)中仍發(fā)現(xiàn)大量(2000個以上)的錯誤。在軟件開發(fā)中缺乏科學(xué)管理的方法,開發(fā)進(jìn)度不能保證,軟件開發(fā)和維護(hù)困難。只重視開發(fā)而輕視問題的定義,使軟件產(chǎn)品無法滿足用戶的需求。缺乏軟件質(zhì)量管理規(guī)范。對軟件開發(fā)成本的估計(jì)不準(zhǔn)確,造成開發(fā)成本超出預(yù)算。過分重視程序設(shè)計(jì)人員的個人技能,缺少有效方法與軟件工具的支持,軟件產(chǎn)品個性化,可維護(hù)性差。硬件生產(chǎn)率大幅提高軟件生產(chǎn)隨規(guī)模增大、復(fù)雜度增大軟件生產(chǎn)率很低硬、軟件供需失衡矛盾引發(fā)“軟件危機(jī)”為了解決軟件危機(jī)就要從技術(shù)和組織管理兩個方面去研究,不斷總結(jié)經(jīng)驗(yàn)教訓(xùn),提高軟件產(chǎn)品的生產(chǎn)效率,降低軟件開發(fā)和維護(hù)的成本。開發(fā)軟件選用最好的開發(fā)工具是至關(guān)重要的,工具選用的好,它可以“放大”人的智力,大大加快軟件開發(fā)速度,提高軟件質(zhì)量。為了解決軟件危機(jī),人們開始探索用工程化的方法進(jìn)行軟件開發(fā),軟件開發(fā)工程化的概念和方法應(yīng)運(yùn)而生,由此誕生了一門新興學(xué)科——軟件工程學(xué)。“軟件工程”一詞是1968年北大西洋公約組織組織的專門討論解決“軟件危機(jī)”的國際會議上正式提出并使用的。軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。它以“工程化”的思想來開發(fā)與維護(hù)軟件。IEEE給出軟件工程的定義是:將系統(tǒng)的、規(guī)范的、可度量的工程化方法應(yīng)用于軟件開發(fā)、運(yùn)行和維護(hù)的全過程及對上述方法的研究。什么是軟件過程?軟件工程=質(zhì)量保證+過程+方法+工具開發(fā)軟件時,需要畫出路線圖,指導(dǎo)操作者按一定順序和步驟創(chuàng)建適時的、高質(zhì)量的軟件產(chǎn)品。開發(fā)軟件產(chǎn)品遵循的路線圖就稱為軟件過程。質(zhì)量保證是指為使軟件產(chǎn)品符合規(guī)定需求所進(jìn)行的一系列有計(jì)劃的必要工作。質(zhì)量是推動軟件過程不斷改進(jìn)的動力。方法層提供了軟件開發(fā)的各種方法。工具層為軟件工程方法和過程提供了自動和半自動的支撐環(huán)境。軟件工程追求的目標(biāo)是可用性、正確性和合理性。也可以說是:“優(yōu)質(zhì)高產(chǎn)”,即:以較低的成本研制具有高質(zhì)量的軟件。用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段復(fù)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查,即每階段都有相應(yīng)文檔開發(fā)小組人員少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性軟件生命周期指軟件產(chǎn)品從需求定義開始,經(jīng)過開發(fā),到軟件交付使用,直至廢棄不用為止的過程。軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)三個時期組成。每個時期又劃分為若干個階段。通常把軟件生命周期劃分為8個階段:每個階段都有明確并且相對獨(dú)立的任務(wù)和完成標(biāo)志,一個階段的任務(wù)完成后,再進(jìn)入下一階段。1、軟件定義時期問題定義:確定“要解決的問題是什么”。階段結(jié)果,產(chǎn)生出:問題定義報告。可行性研究:回答“上一個階段所確定的問題是否有行得通的解決辦法”。階段結(jié)果,產(chǎn)生出:可行性研究報告。需求分析:任務(wù)是確定系統(tǒng)必須具備哪些功能?;卮稹澳繕?biāo)系統(tǒng)必須做什么?階段結(jié)果,產(chǎn)生出:需求規(guī)格說明書在需求分析階段確定的系統(tǒng)邏輯模型是以后設(shè)計(jì)和實(shí)現(xiàn)目標(biāo)系統(tǒng)的基礎(chǔ)。因此,必須準(zhǔn)確完整地體現(xiàn)用戶的要求。問題定義報告是系統(tǒng)分析員簡要地寫出關(guān)于問題性質(zhì)、工程目標(biāo)和工程規(guī)模的書面報告。軟件需求規(guī)格說明書必須清楚、準(zhǔn)確地描述軟件的每一個基本需求(功能、性能、設(shè)計(jì)約束和屬性)和外部界面。2、軟件開發(fā)時期概要設(shè)計(jì)(也稱總體設(shè)計(jì)):關(guān)鍵問題是“怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)”。階段結(jié)果,產(chǎn)生出:概要設(shè)計(jì)說明書。詳細(xì)設(shè)計(jì):把解決方法具體化,關(guān)鍵問題是“怎樣具體地實(shí)現(xiàn)目標(biāo)系統(tǒng)”。階段結(jié)果,產(chǎn)生出:詳細(xì)設(shè)計(jì)說明書。編碼和單元測試:寫出正確的、容易理解而且容易維護(hù)的程序代碼,并仔細(xì)測試每一個模塊。階段結(jié)果,產(chǎn)生出:無語法錯誤的源程序。回答“如何解決該問題?”,即系統(tǒng)“怎樣做?”任務(wù)是確定系統(tǒng)的總體結(jié)構(gòu)、外部接口、模塊的劃分、模塊的功能及數(shù)據(jù)庫設(shè)計(jì)。解決每個模塊內(nèi)部算法和數(shù)據(jù)結(jié)構(gòu)。其詳細(xì)設(shè)計(jì)說明書必須給出每一個基本部件的功能、算法和過程描述。概要設(shè)計(jì)說明書必須描述所設(shè)計(jì)軟件的總體結(jié)構(gòu)、外部接口、各個主要部件的功能與數(shù)據(jù)結(jié)構(gòu)以及各主要部件之間的接口;必要時還必須對主要部件的每一個子部件進(jìn)行描述。根據(jù)設(shè)計(jì)說明書中每一個模塊的流程選取一種適當(dāng)?shù)母呒壋绦蛟O(shè)計(jì)語言,寫出正確的、容易理解而且容易維護(hù)的程序代碼,并仔細(xì)測試每一個模塊。綜合測試:是通過各種類型的測試及相應(yīng)的調(diào)試使軟件達(dá)到預(yù)定的要求。最基本的是集成測試和驗(yàn)收測試。集成測試是把經(jīng)過單元測試的模塊按某種選定的策略裝配起來,在裝配過程中進(jìn)行必要的測試。驗(yàn)收測試是按照需求規(guī)格說明書的規(guī)定,有用戶或在用戶參與下對目標(biāo)系統(tǒng)進(jìn)行驗(yàn)收。階段結(jié)果,產(chǎn)生出:測試報告。3、運(yùn)行維護(hù)時期運(yùn)行維護(hù)階段:是軟件生存周期最后一個階段。關(guān)鍵任務(wù)是:通過各種必要的維護(hù)活動使系統(tǒng)持久地滿足用戶的需求。主要是改正軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴(kuò)充在使用過程中的新的功能要求;階段結(jié)果,產(chǎn)生出:軟件系統(tǒng)的問題報告和軟件修改報告(記錄發(fā)現(xiàn)軟件錯誤的情況以及修改軟件的過程)。按工作量從大到小排列,依次為:完善性維護(hù):指在使用軟件系統(tǒng)的過程中為滿足用戶提出的新功能和性能要求而進(jìn)行的維護(hù)活動。它約占總維護(hù)活動的50%。糾錯性維護(hù):診斷和改正在使用過程中發(fā)現(xiàn)的軟件錯誤。這部分維護(hù)工作約占全部維護(hù)活動的25%。適應(yīng)性維護(hù):由于計(jì)算機(jī)技術(shù)的飛速發(fā)展,外部設(shè)備和其他系統(tǒng)元素經(jīng)常改進(jìn)和變化,為適應(yīng)變化的環(huán)境而修改軟件的活動稱之為適應(yīng)性維護(hù)。它占總維護(hù)活動的18%~21%。預(yù)防性維護(hù):為進(jìn)一步改進(jìn)軟件的可維護(hù)性、可靠性而進(jìn)行的維護(hù)活動,約占4%。二、幾種典型的軟件開發(fā)模型確定需求開發(fā)策劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼與調(diào)試測試~29~軟件集成、聯(lián)調(diào)內(nèi)部確認(rèn)復(fù)制、交付、安裝試運(yùn)行、用戶驗(yàn)收運(yùn)行、維護(hù)退役確定外部用戶需求上級下達(dá)的軟件開發(fā)課題本單位根據(jù)市場需要確定的開發(fā)課題用戶合同要求的軟件開發(fā)任務(wù)輸出可行性分析報告技術(shù)、經(jīng)濟(jì)、社會可行性,風(fēng)險對策合同及評審記錄產(chǎn)品要求得到規(guī)定和滿足單位有能力滿足規(guī)定的要求~30~調(diào)研、分析確定開發(fā)目標(biāo)確定項(xiàng)目開發(fā)的技術(shù)路線(開發(fā)的出發(fā)基線、對現(xiàn)有產(chǎn)品的復(fù)用、委托開發(fā)等)確定應(yīng)遵循的標(biāo)準(zhǔn)、法律和法規(guī)選任開發(fā)項(xiàng)目經(jīng)理劃分開發(fā)階段確定各階段的輸入和輸出文件~31~確定質(zhì)量控制點(diǎn)(評審點(diǎn)、驗(yàn)證點(diǎn)和確認(rèn)點(diǎn))及其實(shí)施的責(zé)任人、實(shí)施方式等設(shè)計(jì)項(xiàng)目開發(fā)進(jìn)度確定開發(fā)人員并分配職責(zé)提出開發(fā)所需資源(軟件、硬件開發(fā)環(huán)境及工具軟件、設(shè)備、資金等)要求并予以落實(shí)制定配置管理計(jì)劃和質(zhì)量保證計(jì)劃輸出策劃報告開發(fā)項(xiàng)目實(shí)施計(jì)劃配置管理計(jì)劃質(zhì)量保證計(jì)劃等~32~確保項(xiàng)目的開發(fā)符合用戶的需求(可測試性)確定設(shè)計(jì)輸入任務(wù)委托書/招標(biāo)書前期對用戶的需求調(diào)研資料可行性分析報告/投標(biāo)書合同等編制需求規(guī)格(說明)書需求變更控制需求的層次業(yè)務(wù)需求、用戶需求和功能需求需求的開發(fā)和管理需求驗(yàn)證~33~確保產(chǎn)品的總體結(jié)構(gòu)和模塊間的關(guān)系與用戶需求的一致性內(nèi)容總體方案設(shè)計(jì)邏輯框圖接口及通訊協(xié)議選用現(xiàn)有產(chǎn)品軟件的選用邊界(約束)條件的設(shè)計(jì)運(yùn)行環(huán)境設(shè)計(jì)等輸出概要設(shè)計(jì)說明書~34~詳細(xì)設(shè)計(jì)說明書與概要設(shè)計(jì)說明書是否相一致內(nèi)容算法設(shè)計(jì)數(shù)據(jù)格式設(shè)計(jì)實(shí)現(xiàn)流程設(shè)計(jì)人機(jī)界面設(shè)計(jì)測試用例設(shè)計(jì)操作設(shè)計(jì)等~35~輸出詳細(xì)設(shè)計(jì)說明書軟件組裝計(jì)劃測試計(jì)劃及測試用例安裝手冊(初稿)使用說明書(初稿)產(chǎn)品標(biāo)準(zhǔn)(初稿)內(nèi)容編寫程序代碼:源代碼→目標(biāo)代碼→可執(zhí)行代碼此階段還包括部分軟件模塊的局部測試、集成與聯(lián)調(diào)根據(jù)待開發(fā)軟件的規(guī)模、控制點(diǎn)及人員安排,可細(xì)分為多個小階段輸出軟件(源代碼、目標(biāo)代碼、可執(zhí)行代碼及相關(guān)數(shù)據(jù)文件)文檔(幫助文件等)保證編碼風(fēng)格的一致性,易讀性;增強(qiáng)軟件源碼的可維護(hù)性~36~黑盒測試白盒測試單元測試?yán)塾?jì)綜合測試集成測試功能測試系統(tǒng)測試端到端測試健全測試衰竭測試接受測試負(fù)載測試強(qiáng)迫測試性能測試可用性測試安裝/卸載測試恢復(fù)測試兼容測試安全測試比較測試Alpha測試Beta測試按測試發(fā)生的順序劃分模塊測試:是對單個軟件模塊的測試單元測試:是對各個軟件功能單元的測試組裝測試:是對各軟件單元之間的互聯(lián)測試集成測試:是對硬件裝置、設(shè)備和軟件的加入性測試系統(tǒng)測試:項(xiàng)目組所在部門組織的對完成集成的系統(tǒng)的測試(是否滿足產(chǎn)品規(guī)格要)確認(rèn)測試:單位質(zhì)量控制部門進(jìn)行的測試(是否滿足產(chǎn)品規(guī)格要求)驗(yàn)收測試:在現(xiàn)場安裝、調(diào)試結(jié)束并經(jīng)試運(yùn)行后,與顧客一起,就滿足合同情況進(jìn)行的測試(是否滿足合同要求)~38~與順序無關(guān)的測試聯(lián)合測試:當(dāng)軟、硬件分頭開發(fā)完成時,對其組合體進(jìn)行的測試回歸測試:對因排除不符合項(xiàng)而采取的措施是否產(chǎn)生了其他副作用而進(jìn)行的確認(rèn)性測試專項(xiàng)測試:針對某些具體測試項(xiàng)進(jìn)行的確認(rèn)性測試。例如:邊界條件測試等。應(yīng)根據(jù)開發(fā)規(guī)模,盡可能進(jìn)行獨(dú)立測試。為了保證測試的可信性,被測試的軟件應(yīng)以源代碼的形式提交,同時說明生成可執(zhí)行代碼的環(huán)境和方法。由測試人員生成可執(zhí)行代碼,進(jìn)行測試。~39~~40~不可能在需求開發(fā)階段真正進(jìn)行任何測試,因?yàn)檫€沒有可執(zhí)行的軟件可以在開發(fā)組編寫代碼之前,以需求為基礎(chǔ)建立概念性測試用例,并使用它們發(fā)現(xiàn)軟件需求規(guī)格說明中的錯誤、二義性和遺漏,還可以進(jìn)行模型分析應(yīng)按計(jì)劃對所開發(fā)的軟件模塊進(jìn)行組裝并與硬件一起聯(lián)調(diào)根據(jù)需要,規(guī)定應(yīng)填寫的調(diào)試記錄~41~在模擬環(huán)境下運(yùn)行,并監(jiān)視、記錄運(yùn)行情況根據(jù)任務(wù)書或合同的要求進(jìn)行比照,檢查其是否滿足使用要求對運(yùn)行情況、測試結(jié)果及文檔的齊套性、正確性和一致性進(jìn)行評審,達(dá)到確認(rèn)~42~軟盤復(fù)制、光盤刻錄交付時的版本標(biāo)識和登記安裝(派技術(shù)人員安裝或由用戶自行安裝)記錄軟件安裝實(shí)施計(jì)劃軟件安裝環(huán)境最低需求軟件安裝記錄~43~以用戶驗(yàn)收的方式進(jìn)行最終確認(rèn)結(jié)論軟件設(shè)計(jì)與需求的一致性程序編碼與軟件設(shè)計(jì)的一致性文件描述與程序的一致性文件的成套性、完整性、準(zhǔn)確性和標(biāo)準(zhǔn)化程度是否通過驗(yàn)收~44~收集使用中發(fā)現(xiàn)的問題和顧客意見針對運(yùn)行中出現(xiàn)的問題,按設(shè)計(jì)更改程序進(jìn)行控制記錄用戶服務(wù)記錄表完善性維護(hù)糾錯性維護(hù)適應(yīng)性維護(hù)預(yù)防性維護(hù)~45~編寫軟件退役報告,并進(jìn)行評審~46~1)結(jié)構(gòu)化方法自70年代以來,結(jié)構(gòu)化方法得到了廣泛的應(yīng)用和普及。該方法是一種面向數(shù)據(jù)流的開發(fā)方法,其實(shí)質(zhì)就是功能分解和抽象。結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析(SA)、結(jié)構(gòu)化設(shè)計(jì)(SD)和結(jié)構(gòu)化程序設(shè)計(jì)(SP)。作為圖形表示方法有數(shù)據(jù)流圖、模塊層次結(jié)構(gòu)圖、程序流程圖,PAD圖等。2)面向數(shù)據(jù)結(jié)構(gòu)的軟件開發(fā)方法Jackson方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,它從目標(biāo)系統(tǒng)的輸入、輸出數(shù)據(jù)結(jié)構(gòu)圖入手,導(dǎo)出程序結(jié)構(gòu),并在此基礎(chǔ)上進(jìn)行詳細(xì)設(shè)計(jì)和編程。3)面向?qū)ο筌浖_發(fā)方法面向?qū)ο蠓椒▽W(xué)是20世紀(jì)90年代發(fā)展起來的軟件分析設(shè)計(jì)方法。面向?qū)ο蠹夹g(shù)是軟件技術(shù)的一次革命,在軟件開發(fā)史上具有里程碑的意義。隨著OOP(面向?qū)ο缶幊蹋┫騉OD(面向?qū)ο笤O(shè)計(jì))和OOA(面向?qū)ο蠓治觯┑陌l(fā)展,最終形成面向?qū)ο蟮能浖_發(fā)方法OMT(ObjectModellingTechnique)。

3)面向?qū)ο筌浖_發(fā)方法(續(xù))該方法把客觀世界的事物或?qū)嶓w都看成對象,把對象作為分析設(shè)計(jì)的基本元素,把所有對象都劃分成對象類,類可以派生和繼承,對每個對象類都定義一組數(shù)據(jù)(屬性)和方法(行為)。OO技術(shù)在需求分析、可維護(hù)性和可靠性這三個軟件開發(fā)的關(guān)鍵環(huán)節(jié)和質(zhì)量指標(biāo)上有了實(shí)質(zhì)性的突破,大大緩解了軟件危機(jī)。簡單式瀑布模型快速原型模型增量模型螺旋模型統(tǒng)一過程模型修改直到用戶滿意系統(tǒng)使用消亡思路或者客戶需求構(gòu)建第一個版本系統(tǒng)在沒有任何規(guī)范和規(guī)則的情況下就開發(fā)沒有明確的設(shè)計(jì),設(shè)計(jì)思路都在開發(fā)者的頭腦中這種開發(fā)方法對于使用周期很短的小項(xiàng)目可用隨著時間的推移,系統(tǒng)的維護(hù)越來越困難系統(tǒng)在交付使用時,有可能會出現(xiàn)一系列的錯誤,前期和后期維護(hù)成本都很高在大型項(xiàng)目和商用項(xiàng)目中極少使用~52~瀑布模型即軟件生命周期模型,是軟件工程的典型模型。軟件生命周期的各個階段如同瀑布流水般逐級下落,形成自上而下,相互銜接的固定次序。瀑布模型采用結(jié)構(gòu)化方法開發(fā),包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化程序設(shè)計(jì)和結(jié)構(gòu)化測試方法。瀑布模型是一次開發(fā)就將一個包含全部功能的產(chǎn)品交付用戶使用。70年代流行的開發(fā)方法自上而下的開發(fā)方法每個階段都有軟件質(zhì)量管理組核實(shí)后再進(jìn)行下一階段的開發(fā)每一階段都有測試每個階段都形成了明確的文檔文檔并不總能和系統(tǒng)相符合細(xì)化的文檔使得系統(tǒng)的用戶和開發(fā)人員難于理解和分辨系統(tǒng)的關(guān)系階段之間的對應(yīng)和檢查變得困難、維護(hù)代價高變更應(yīng)對能力差瀑布模型即軟件生命周期模型,是軟件工程的典型模型。軟件生命周期的各個階段如同瀑布流水般逐級下落,形成自上而下,相互銜接的固定次序。需求分析設(shè)計(jì)實(shí)現(xiàn)測試運(yùn)行維護(hù)瀑布式設(shè)計(jì)階段實(shí)現(xiàn)階段集成階段需求階段細(xì)化階段使用階段消亡每個階段做完時進(jìn)行驗(yàn)證瀑布模型采用結(jié)構(gòu)化方法開發(fā),包括結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、結(jié)構(gòu)化程序設(shè)計(jì)和結(jié)構(gòu)化測試方法。瀑布模型是一次開發(fā)就將一個包含全部功能的產(chǎn)品交付用戶使用。瀑布模型具有順序性和依賴性,即后一階段的工作必須在前一階段的工作完成后才能開始。瀑布模型強(qiáng)調(diào)的是優(yōu)質(zhì),即每一步都循序漸進(jìn),及早消除隱患,從而保證軟件質(zhì)量。強(qiáng)調(diào)兩點(diǎn):文檔、復(fù)審生命期模型的優(yōu)點(diǎn):瀑布模型是一種線性模型它的致命缺點(diǎn)在于“單向性”只有做出精確的需求分析,才能取得預(yù)期的結(jié)果。由于各種客觀、主觀的原因,需求分析往往不很精確,常常給日后的開發(fā)帶來隱患。太理想化,不夠靈活。增量模型也稱漸增模型,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。增量模型從一組給定的需求開始,通過構(gòu)造一系列的可執(zhí)行工作版本來實(shí)施開發(fā)活動,每一個工作版本都納入更多的需求。步驟:將系統(tǒng)分成小的模塊按順序(重要程度)將組件交給客戶每次交互的組件都提供更多的功能。增量模型的優(yōu)點(diǎn):分批地逐步向用戶提交產(chǎn)品,能在較短的時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品。逐步增加產(chǎn)品功能,可以使用戶有較充裕的時間學(xué)習(xí)和適應(yīng)新產(chǎn)品。不同的構(gòu)件將可以并行開發(fā),可能能加快項(xiàng)目的進(jìn)度。使用增量模型的困難是,在把每個新的增量組件集成到現(xiàn)有軟件體系結(jié)構(gòu)中時,必須不破壞原來已經(jīng)開發(fā)出的產(chǎn)品,并且可能冒構(gòu)件無法集成到一起的風(fēng)險。快速建立一個只包括核心功能并可在計(jì)算機(jī)上運(yùn)行的程序(原型)。用戶通過使用這個原型,提出進(jìn)一步的需求,開發(fā)人員按照用戶意見快速修改原型系統(tǒng),然后再次請用戶試用,直到得到明確完整的需求,按照這個最后的需求開發(fā)出的系統(tǒng)可以滿足用戶的真實(shí)需求。優(yōu)點(diǎn)是保證用戶的真實(shí)需求得到滿足.特點(diǎn)是用戶一直參與,不斷改進(jìn),系統(tǒng)邊做邊改。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄。適用于用戶驅(qū)動的系統(tǒng)(即需求模糊或隨時間變化的系統(tǒng))建造/修改原型用戶測試運(yùn)行原型

聽取用戶意見螺旋模型將工程劃分為4個主要活動:制定計(jì)劃、風(fēng)險分析、實(shí)施工程和客戶評估。4個活動螺旋式地重復(fù)執(zhí)行,直到最終得到用戶認(rèn)可的產(chǎn)品。制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的約束條件。風(fēng)險分析:分析選定方案,考慮如何識別和消除風(fēng)險。實(shí)施工程:實(shí)施軟件開發(fā)。這一步相當(dāng)于純粹的瀑布模型??蛻粼u估:對當(dāng)前工作結(jié)果進(jìn)行評價,提出改進(jìn)產(chǎn)品的建議。螺旋模型適用于有一定技術(shù)風(fēng)險的大型軟件系統(tǒng)的開發(fā)。軟件的需求是難以預(yù)期的,開發(fā)方法必需適應(yīng)變化的需求,在快速的迭代中不斷改進(jìn)小組成員并不完全按照完整的方法進(jìn)行開發(fā),而根據(jù)具體問題和情況,靈活地去除非增值活動僅僅執(zhí)行一些必須的活動,使用必須的規(guī)則,編寫必須的文檔人的因素被放在第一適合互聯(lián)網(wǎng)時代的開發(fā)要求~65~快速適應(yīng)系統(tǒng)需求的變化提高軟件生產(chǎn)率突出企業(yè)自身特點(diǎn),體現(xiàn)企業(yè)核心能力支持動態(tài)聯(lián)盟和虛擬組織面向業(yè)務(wù)目標(biāo)持續(xù)改進(jìn)和重組~66~輕量級的開發(fā)過程基于時間JustEnough并行基于組件的軟件工程~67~eXtremeProgramming(XP)SCRUMDSDMAdaptiveSoftwareDevelopment(ASD)FeatureDrivenDevelopment(FDD)CrystalFamilyRationalRUP&UML~68~統(tǒng)一軟件開發(fā)過程(RUP)是由Rational公司開發(fā)的一種軟件過程。可以認(rèn)為它是一種綜合了瀑布模型,增量模型,螺旋模型,快速原型模型優(yōu)點(diǎn)的混合模型。它的開發(fā)使用UML。在需求分析階段,分析人員用業(yè)務(wù)用例建立需求模型。在設(shè)計(jì)階段,設(shè)計(jì)人員根據(jù)用例進(jìn)行設(shè)計(jì),建立系統(tǒng)的設(shè)計(jì)模型和實(shí)現(xiàn)模型。在開發(fā)階段,開發(fā)人員把設(shè)計(jì)模型和實(shí)現(xiàn)模型與用例進(jìn)行比較、評價和設(shè)計(jì)。在測試階段,用例作為測試的依據(jù),測試人員根據(jù)用例來設(shè)計(jì)測試用例,從而驗(yàn)證軟件是否正確地實(shí)現(xiàn)了用例。用例驅(qū)動用例:能向用戶提供有價值的系統(tǒng)的某種功能以架構(gòu)為中心軟件架構(gòu):系統(tǒng)的最重要的靜態(tài)和動態(tài)特征迭代和增量式迭代:工作流程的重復(fù)、每次的活動都以上次的活動為基礎(chǔ)~70~用戶所希望和需要的是什么系統(tǒng)能為每個用戶提供什么功能用例所描述和代表的是用戶與系統(tǒng)交互的一個過程,而這個過程滿足了用戶的某些需求所強(qiáng)調(diào)的是系統(tǒng)的功能~71~刻畫了系統(tǒng)的整體設(shè)計(jì),忽略了細(xì)節(jié)設(shè)計(jì),刻畫最重要的部分。什么是最重要的呢?依賴于判斷。判斷的依據(jù)是經(jīng)驗(yàn)。構(gòu)架的設(shè)計(jì)價值取決于執(zhí)行該任務(wù)的人的素質(zhì)受用戶需求(用戶可能會增加那方面的需求)、軟件應(yīng)用平臺(計(jì)算機(jī)硬件、操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡(luò)等)、實(shí)施問題、遺留系統(tǒng)集成等的影響~72~用例是系統(tǒng)的功能和外衣架構(gòu)是系統(tǒng)的內(nèi)在形式兩方面必須并行進(jìn)化架構(gòu)只考慮核心功能(5-10%)架構(gòu)設(shè)計(jì)原則:先考慮與用例無關(guān)的不會變動的方面考慮考慮最重要的功能需求子集~73~控制迭代過程,劃分每次迭代的目標(biāo)迭代原則:架構(gòu)上先實(shí)現(xiàn)最粗略的部分功能上先實(shí)現(xiàn)最重要的每次迭代盡可能的劃分的細(xì),迭代數(shù)量不能太少每次迭代要有規(guī)范的檢查機(jī)制增量式每次迭代增加一部分設(shè)計(jì)和實(shí)現(xiàn)~74~在軟件過程中,不斷的向用戶提供新的版本每次形成的版本構(gòu)成了一個循環(huán)~75~每次循環(huán)由四個階段構(gòu)成初始想法-->產(chǎn)品系統(tǒng)向用戶提供的功能是什么系統(tǒng)的架構(gòu)是什么樣子的開發(fā)計(jì)劃、開支如何、人員安排細(xì)化詳細(xì)說明產(chǎn)品的功能設(shè)計(jì)系統(tǒng)的架構(gòu)構(gòu)造構(gòu)造能運(yùn)行的產(chǎn)品移交產(chǎn)品手冊、測試手冊、用戶培訓(xùn)、技術(shù)支持~76~~77~~78~用例模型:系統(tǒng)的功能和用戶的關(guān)系分析模型:提煉用例,將用例的實(shí)現(xiàn)分配給一組對象設(shè)計(jì)模型:靜態(tài)結(jié)構(gòu)和動態(tài)結(jié)構(gòu)子系統(tǒng)、類、接口實(shí)現(xiàn)模型:類、接口到組件的映射實(shí)施模型:組件到部署物理節(jié)點(diǎn)的映射測試模型:測試用例和用例的映射~79~~80~迭代的過程使得每次迭代過程中依賴關(guān)系的復(fù)雜程度降低~81~沒有通用的軟件過程組織因素:組織結(jié)構(gòu)、文化、管理、能力、經(jīng)驗(yàn)等領(lǐng)域因素:應(yīng)用領(lǐng)域的熟悉、競爭對手的提供產(chǎn)品的影響生命周期因素:時間、專業(yè)技能技術(shù)因素:程序設(shè)計(jì)語言、開發(fā)工具、數(shù)據(jù)庫系統(tǒng)、框架等~82~三軟件項(xiàng)目開發(fā)過程管理軟件產(chǎn)品的特點(diǎn)軟件產(chǎn)品的質(zhì)量,完全取決于其設(shè)計(jì)和開發(fā)水平軟件需求的模糊性、變化性使軟件產(chǎn)品難以成熟任何一個軟件產(chǎn)品,或多或少總會存在一些故障(BUG)軟件人員廣泛存在的不規(guī)范的開發(fā)習(xí)慣使開發(fā)過程難以管理軟件質(zhì)量指標(biāo)難以量化軟件測試?yán)碚摵图夹g(shù)尚未解決軟件產(chǎn)品正確性的驗(yàn)證問題軟件產(chǎn)品質(zhì)量特性:滿足需求能力的一系列特性總和功能、可靠性、易用性、效率、維護(hù)性、可移植性軟件管理必須在市場(用戶)需求和軟件成熟性之間進(jìn)行權(quán)衡~84~基線的確立配置項(xiàng)的存取配置管理實(shí)施配置項(xiàng)的標(biāo)識配置項(xiàng)的變更控制配置項(xiàng)的狀態(tài)記錄配置項(xiàng)的檢查和評審~85~控制對構(gòu)成軟件產(chǎn)品的各配置項(xiàng)的標(biāo)識、管理、更改活動,保證軟件配置項(xiàng)的完全性和正確性,防止非預(yù)期的使用軟件配置項(xiàng)的范圍合同、技術(shù)文檔、質(zhì)量記錄等對軟件存放介質(zhì)(媒體)的要求和規(guī)定軟件的復(fù)制(軟件的生產(chǎn)過程)媒體的標(biāo)識:規(guī)則、執(zhí)行者媒體的貯存(防潮、防火、防磁、防靜電、防病毒)媒體的包裝、運(yùn)輸~86~各開發(fā)階段應(yīng)形成的文檔,對其擬、審、批的規(guī)定編制文檔資料所依據(jù)的標(biāo)準(zhǔn)和規(guī)范開發(fā)過程中應(yīng)形成的質(zhì)量記錄文檔與軟件之間的一致性檢查文檔資料的歸檔與發(fā)放~87~分類開發(fā)過程中的版本交付軟件產(chǎn)品的版本管理對象軟件文檔為該產(chǎn)品開發(fā)的工具軟件操作配置管理人員,配備一臺計(jì)算機(jī)(或服務(wù)器)開設(shè)開發(fā)庫、受控庫和產(chǎn)品庫訪問權(quán)限對入庫和出庫軟件的控制~88~開發(fā)庫存放正在開發(fā)(編寫)或調(diào)試(修改)、自測的軟件和文檔受控庫存放開發(fā)各階段測試通過的軟件、文檔和工具軟件的版本并給以標(biāo)識。轉(zhuǎn)入下一階段時,從此處發(fā)放用作下一階段開始工作的初始版本產(chǎn)品庫存放可交付及已交付軟件、文檔及支持文件的版本各庫內(nèi)所存放的軟件和文檔,應(yīng)定期備份,以防止開發(fā)成果的意外丟失(文件重寫、介質(zhì)損壞、意外事故、非法訪問——病毒,黑客,故意破壞等)并保證可追溯性~89~開發(fā)所需的硬件環(huán)境測試所需的硬件環(huán)境(包括模擬用戶環(huán)境所必要的輸入、輸出設(shè)備)開發(fā)平臺軟件(操作系統(tǒng)、編程語言、編譯環(huán)境、調(diào)試工具等)管理軟件診斷軟件測試軟件輔助性軟件(防病毒軟件等)~90~《軟件產(chǎn)品管理辦法》《計(jì)算機(jī)信息系統(tǒng)集成資質(zhì)管理辦法(試行)》《計(jì)算機(jī)軟件保護(hù)條例》ISO/IEC12207—1995信息技術(shù)軟件生存周期過程ISO/IECTR15504軟件過程評估GB/T19000.3—2001質(zhì)量管理和質(zhì)量保證標(biāo)準(zhǔn)第3部分:GB信息技術(shù)軟件生存周期過程GB/T19001—1994在軟件開發(fā),供應(yīng)、安裝和維護(hù)中的使用指南GB/T12504—90計(jì)算機(jī)軟件質(zhì)量保證計(jì)劃規(guī)范GB/T12505—90計(jì)算機(jī)軟件配置管理計(jì)劃規(guī)范等~91~軟件質(zhì)量管理體系八項(xiàng)質(zhì)量管理原則過程方法基于過程的質(zhì)量管理體系模式實(shí)施質(zhì)量管理體系的意義實(shí)施質(zhì)量管理體系工作重點(diǎn)企業(yè)發(fā)展力量分析~92~質(zhì)量體系文件質(zhì)量手冊文件控制記錄控制管理職責(zé)質(zhì)量方針、質(zhì)量目標(biāo)職責(zé)、權(quán)限與溝通管理評審資源管理人力資源基礎(chǔ)設(shè)施和工作環(huán)境~93~產(chǎn)品實(shí)現(xiàn)產(chǎn)品實(shí)現(xiàn)的策劃與顧客有關(guān)的過程設(shè)計(jì)和開發(fā)采購開發(fā)和服務(wù)提供監(jiān)視和測量裝置的控制

測量、分析和改進(jìn)監(jiān)視和測量

不合格品控制

數(shù)據(jù)分析

改進(jìn)

以顧客為關(guān)注焦點(diǎn)領(lǐng)導(dǎo)作用全員參與過程方法管理的系統(tǒng)方法持續(xù)改進(jìn)基于事實(shí)的決策方法與供方互利的關(guān)系~94~~95~

最高管理者持續(xù)的推動時間組織業(yè)績PDCA持續(xù)循環(huán)改進(jìn)~96~管理法治化職責(zé)更分明接口更明確監(jiān)督機(jī)制加強(qiáng)焦點(diǎn)得到控制競爭能力增強(qiáng)~97~規(guī)范管理制度增進(jìn)內(nèi)部溝通提高服務(wù)質(zhì)量增強(qiáng)社會信心~98~四CMM簡介迄今為止學(xué)術(shù)界和工業(yè)界公認(rèn)的有關(guān)軟件工程和管理實(shí)踐的最好的評價模型。為評估軟件組織的生產(chǎn)能力提供了標(biāo)準(zhǔn)。為提高軟件組織的

溫馨提示

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

評論

0/150

提交評論