第一章軟件工程概述_第1頁
第一章軟件工程概述_第2頁
第一章軟件工程概述_第3頁
第一章軟件工程概述_第4頁
第一章軟件工程概述_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程學(xué)教程西安郵電大學(xué)曹小鵬cxp2760@163.com課程簡介課程名稱:軟件工程教 材:《SoftwareEngineering》(英)IanSommerville《軟件工程導(dǎo)論》張海藩教學(xué)方式:授課+項目討論+上機(jī)實習(xí) 課時安排:32+16考試類別:閉卷考試

參考教材:

《軟件工程——實踐者之路》(原名:SoftwareEngineering–APractitioner’sApproach,SixthEdition),RogerS.Pressman,清華大學(xué)出版社2006軟件工程學(xué)教程陳明科學(xué)出版社軟件工程實踐者的研究方法黃柏素等譯機(jī)械軟件工程鄧良松等西安電子科技大學(xué)出版社第1章軟件工程概述1.1計算機(jī)軟件概念1.2

軟件的發(fā)展1.3軟件危機(jī)與軟件問題1.4軟件工程與開發(fā)準(zhǔn)則1.5軟件生命周期1.6軟件開發(fā)模型1.1.1

計算機(jī)軟件軟件是計算機(jī)系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開發(fā),維護(hù)和使用有關(guān)的圖文材料1.1計算機(jī)軟件概念軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性在軟件的運行和使用期間,沒有硬件那樣的機(jī)械磨損,老化問題軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,軟件維護(hù)困難軟件的特點(2)軟件的開發(fā)和運行常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件本身是復(fù)雜的,相當(dāng)多的軟件工作涉及到社會因素實際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性軟件成本相當(dāng)昂貴軟件與硬件的關(guān)系硬件的故障率曲線故障率生命初期“磨損”后軟件的故障率曲線故障率時間理想曲線實際曲線修改副作用軟件分類1、按功能進(jìn)行劃分:(1)系統(tǒng)軟件:能夠控制計算機(jī)系統(tǒng)各部件(軟硬件)協(xié)調(diào)、高效地工作和進(jìn)程處理、資源共享管理等操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序等(2)支撐軟件工具軟件,它幫助軟件開發(fā)人員開發(fā)自己的軟件產(chǎn)品文本編輯程序文件格式化程序磁盤向磁帶向數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)支持需求分析、設(shè)計、實現(xiàn)、測試和支持管理的軟件為特定的應(yīng)用目的而開發(fā)的服務(wù)性軟件

商業(yè)數(shù)據(jù)處理軟件工程與科學(xué)計算軟件計算機(jī)輔助設(shè)計/制造軟件系統(tǒng)仿真軟件智能產(chǎn)品嵌入軟件醫(yī)療、制藥軟件事務(wù)管理、辦公自動化軟件計算機(jī)輔助教學(xué)軟件(3)應(yīng)用軟件類別參加加人員數(shù)研研制期限限源源程序行數(shù)微型11~4周0.5k小型11~6月1k~2k中型2~51~2年5k~50k大型5~202~3年50k~100k甚大型100~10004~5年1M(=1000k)極大型2000~50005~10年1M~10M2、按軟件規(guī)模進(jìn)進(jìn)行劃分只是一個人,,在幾天之內(nèi)內(nèi)完成的軟件件。寫出的程程序不到5百行語句,僅僅供個人專用用。通常這種小題題目無需做嚴(yán)嚴(yán)格的分析,,也不必要有有一套完整的的設(shè)計、測試試資料。不過過這并不是說說可以隨便地地不講任何方方法地做。事實說明,即即使這樣小的的題目,如果果經(jīng)過一定的的分析、系統(tǒng)統(tǒng)設(shè)計、結(jié)構(gòu)構(gòu)化編碼以及及有步驟地測測試,肯定也也是非常有益益的。(1)微型(2)小型一個人半年之之內(nèi)完成的2千行以內(nèi)的程程序。例如,數(shù)值計計算問題或是是數(shù)據(jù)處理問問題就是這種種規(guī)模的課題題。這種程序通常常沒有與其它它程序的接口口。但需要按按一定的標(biāo)準(zhǔn)準(zhǔn)化技術(shù)、正正規(guī)的資料書書寫以及定期期的系統(tǒng)審查查。只是沒有有大題目那樣樣嚴(yán)格。(3)中型5個人以內(nèi)在一一年多時間里里完成的5千到5萬行的程序。。這種課題開始始出現(xiàn)軟件人人員之間、軟軟件人員與用用戶之間的聯(lián)聯(lián)系、協(xié)調(diào)的的配合關(guān)系問問題。因而計計劃、資料書書寫以及技術(shù)術(shù)審查需要比比較嚴(yán)格地進(jìn)進(jìn)行。這類軟件課題題比較普遍,,許多應(yīng)用程程序和系統(tǒng)程程序就是這樣樣的規(guī)模。在開發(fā)中使用用系統(tǒng)的軟件件工程方法是是完全必要的的,這對提高高軟件產(chǎn)品質(zhì)質(zhì)量和程序人人員的工作效效率起著重要要的作用。(4)大型5至10個人在兩年多多的時間里完完成的5萬到10萬行的程序。。例如編譯程序序、小型分時時系統(tǒng)、應(yīng)用用軟件包、實實時控制系統(tǒng)統(tǒng)等很可能是是這種軟件。。參加工作的軟軟件人員需要要按二級管理理,例如劃分分成若干小組組,每組5人以下為好。。在任務(wù)完成成過程中,人人員調(diào)整往往往不可避免。。因此會出現(xiàn)現(xiàn)對新手的培培訓(xùn)和逐步熟熟悉工作的問問題。對于這樣規(guī)模模的軟件,采采用統(tǒng)一的標(biāo)標(biāo)準(zhǔn),實行嚴(yán)嚴(yán)格的審查是是絕對必要的的。由于軟件件的規(guī)模龐大大以及問題的的復(fù)雜性,往往往會在開發(fā)發(fā)的過程中出出現(xiàn)一些事先先難于做出估估計的不測事事件。(5)甚大型100至1000人參加用4到5年時間完成的的具有100萬行程序的軟軟件項目。這種甚大型項項目可能會劃劃分成若干個個子項目,每每一個子項目目都是一個大大型軟件。子子項目之間具具有復(fù)雜的接接口。例如,實時處處理系統(tǒng)、遠(yuǎn)遠(yuǎn)程通信系統(tǒng)統(tǒng)、多任務(wù)系系統(tǒng)、大型操操作系統(tǒng)、大大型數(shù)據(jù)庫管管理系統(tǒng)、軍軍事指揮系統(tǒng)統(tǒng)通?,F(xiàn)有這這樣的規(guī)模。。很顯然,這類類問題沒有軟軟件工程方法法的支持,它它的開發(fā)工作作是不可想象象的。(6)極大型2000人到5000人參加,10年內(nèi)完成的1000萬行以內(nèi)的程程序。這類軟件很少少見,往往是是軍事指揮、、彈道導(dǎo)彈防防御系統(tǒng)。3、按工作方式式劃分實時處理軟件件:指在事件或數(shù)數(shù)據(jù)產(chǎn)生時立立即進(jìn)行處理理分時軟件:在多個用戶在在聯(lián)機(jī)情況下下同時要求系系統(tǒng)對其進(jìn)行行處理時,系系統(tǒng)將處理機(jī)機(jī)時間輪流分分配給各用戶戶,使用戶感感到系統(tǒng)僅為為自己服務(wù)交互式軟件:可通過各種用用戶界面實現(xiàn)現(xiàn)人機(jī)通信批處理軟件:將一組作業(yè)或或一批數(shù)據(jù)按按要求的順序序逐個處理,,直至全部作作業(yè)處理完畢畢(1)項目軟件,也也稱定制軟件件是受某個特定定客戶(或少少數(shù)客戶)的的委托,由一一個或多個軟軟件開發(fā)機(jī)構(gòu)構(gòu)在合同的約約束下開發(fā)出出來的軟件。。例如軍用防空空指揮系統(tǒng)、、衛(wèi)星控制系系統(tǒng)的軟件就就屬于這一類類。這類項目軟件件中有的軟件件帶有試驗研研究性質(zhì),項項目完成后根根據(jù)需要可能能在此基礎(chǔ)上上做進(jìn)一步開開發(fā)。為取得得客戶的委托托項目,軟件件開發(fā)機(jī)構(gòu)的的質(zhì)量管理、、技術(shù)實力、、開發(fā)經(jīng)驗以以及履行合同同的信譽(yù)成為為受到重視的的問題。3、按服務(wù)對象象范圍劃分(2)產(chǎn)品軟件是由軟件開發(fā)發(fā)機(jī)構(gòu)開發(fā)出出來直接提供供給市場,或或是為千百個個用戶服務(wù)的的軟件。這是是一些服務(wù)于于多個目的及及多個用戶的的軟件。例如,文字處處理軟件、財財務(wù)處理軟件件、人事管理理軟件等。由于要參與市市場競爭,其其功能、使用用性能以及培培訓(xùn)和售后服服務(wù)顯得尤為為重要。1.2軟件的發(fā)展隨著計算機(jī)硬硬件性能的極極大提高和計計算機(jī)體系結(jié)結(jié)構(gòu)的不斷變變化,計算機(jī)機(jī)軟件系統(tǒng)更更加成熟和更更為復(fù)雜,從從而促使計算算機(jī)軟件的角角色發(fā)生了巨巨大的變化,,其發(fā)展歷史史大致可以分分為如圖所示示的四個階段段。1.2軟件件的的發(fā)發(fā)展展早期期((程程序序設(shè)設(shè)計計階階段段))::【時時間間】】::20世世紀(jì)紀(jì)50年年代代初初期期至至60年年代代中中期期【特特點點】】::硬硬件件已已經(jīng)經(jīng)通通用用化化,,而而軟軟件件的的生生產(chǎn)產(chǎn)卻卻是是個個體體化化。。軟軟件件產(chǎn)產(chǎn)品品為為專專用用軟軟件件,,規(guī)規(guī)模模較較小小,,功功能能單單一一,,開開發(fā)發(fā)者者即即使使用用者者;;軟軟件件只只有有程程序序,,無無文文檔檔;;軟軟件件設(shè)設(shè)計計在在人人們們的的頭頭腦腦中中完完成成,,形形成成了了錯錯誤誤觀觀念念““軟軟件件==程程序序””。?!镜涞湫托图技夹g(shù)術(shù)】】::面面向向批批處處理理、、自自定定義義軟軟件件1.2軟件件的的發(fā)發(fā)展展第二二階階段段((程程序序系系統(tǒng)統(tǒng)階階段段))::【時時間間】】::20世世紀(jì)紀(jì)60年年代代中中期期至至70年年代代末末期期【特特點點】】::多多道道程程序序設(shè)設(shè)計計技技術(shù)術(shù)、、多多用用戶戶系系統(tǒng)統(tǒng)、、人人機(jī)機(jī)交交互互式式技技術(shù)術(shù)、、實實時時系系統(tǒng)統(tǒng)和和第第一一代代數(shù)數(shù)據(jù)據(jù)庫庫管管理理系系統(tǒng)統(tǒng)的的出出現(xiàn)現(xiàn),,使使得得計計算算機(jī)機(jī)應(yīng)應(yīng)用用得得到到迅迅速速。。出現(xiàn)現(xiàn)了了專專門門從從事事軟軟件件開開發(fā)發(fā)的的““軟軟件件作作坊坊””,,軟軟件件作作為為產(chǎn)產(chǎn)品品得得到到了了廣廣泛泛應(yīng)應(yīng)用用。。但但在在軟軟件件業(yè)業(yè)空空前前繁繁榮榮的的同同時時,,原原始始的的開開發(fā)發(fā)與與維維護(hù)護(hù)方方法法陷陷入入了了極極端端困困境境,,““軟軟件件危危機(jī)機(jī)””產(chǎn)產(chǎn)生生。?!镜涞湫托图技夹g(shù)術(shù)】】::多多用用戶戶、、實實時時、、數(shù)數(shù)據(jù)據(jù)庫庫、、軟軟件件產(chǎn)產(chǎn)品品1.2軟件件的的發(fā)發(fā)展展第三三階階段段((軟軟件件工工程程階階段段))::【時時間間】】::20世世紀(jì)紀(jì)70年年代代中中期期至至80年年代代中中期期【特特點點】】::微微處處理理器器的的出出現(xiàn)現(xiàn)和和廣廣泛泛應(yīng)應(yīng)用用,,使使得得計計算算機(jī)機(jī)真真正正成成為為大大眾眾化化的的東東西西。。以以軟軟件件的的產(chǎn)產(chǎn)品品化化、、系系列列化化、、工工程程化化和和標(biāo)標(biāo)準(zhǔn)準(zhǔn)化化為為特特征征的的軟軟件件產(chǎn)產(chǎn)業(yè)業(yè)發(fā)發(fā)展展起起來來,,軟軟件件開開發(fā)發(fā)有有了了可可以以遵遵循循的的軟軟件件工工程程化化的的設(shè)設(shè)計計準(zhǔn)準(zhǔn)則則、、方方法法和和標(biāo)標(biāo)準(zhǔn)準(zhǔn)。。【典典型型技技術(shù)術(shù)】】::分分布布式式系系統(tǒng)統(tǒng)、、廣廣域域網(wǎng)網(wǎng)和和局局域域網(wǎng)網(wǎng)、、低成成本本的的硬硬件件、、嵌嵌入入““智智能能””1.2軟件件的的發(fā)發(fā)展展第四四階階段段::【時時間間】】::20世世紀(jì)紀(jì)80年年代代中中期期至至今今【特特點點】】::計計算算機(jī)機(jī)的的發(fā)發(fā)展展不不再再著著重重與與單單臺臺計計算算機(jī)機(jī)和和計計算算機(jī)機(jī)程程序序、、而而是是針針對對計計算算機(jī)機(jī)和和軟軟件件的的綜綜合合應(yīng)應(yīng)用用。。由由復(fù)復(fù)雜雜的的操操作作系系統(tǒng)統(tǒng)控控制制的的PC機(jī)、、廣廣域域網(wǎng)網(wǎng)、、局局域域網(wǎng)網(wǎng)、、Internet,,配合合以以先先進(jìn)進(jìn)的的軟軟件件應(yīng)應(yīng)用用已已經(jīng)經(jīng)成成為為標(biāo)標(biāo)準(zhǔn)準(zhǔn)。。面面向向?qū)ο笙蟮牡拈_開發(fā)發(fā)方方法法在在許許多多領(lǐng)領(lǐng)域域迅迅速速取取代代了了傳傳統(tǒng)統(tǒng)的的軟軟件件開開發(fā)發(fā)方方法法。。【典典型型技技術(shù)術(shù)】】::強(qiáng)強(qiáng)大大的的桌桌面面系系統(tǒng)統(tǒng)、、面面向向?qū)ο笙蠹技夹g(shù)術(shù)專家家系系統(tǒng)統(tǒng)、、人人工工神神經(jīng)經(jīng)網(wǎng)網(wǎng)絡(luò)絡(luò)、、網(wǎng)網(wǎng)絡(luò)絡(luò)計計算算機(jī)機(jī)1.3軟件件危危機(jī)機(jī)與與軟軟件件問問題題軟件件危危機(jī)機(jī)軟件件總總是是超超出出預(yù)預(yù)算算、、落落后后于于進(jìn)進(jìn)度度表表,,而而且且不不可可靠靠在計計算算機(jī)機(jī)軟軟件件的的開開發(fā)發(fā)和和維維護(hù)護(hù)過過程程中中所所遇遇到到的的一一系系列列嚴(yán)嚴(yán)重重問問題題。。軟件件受受其其自自身身特特點點的的影影響響,生產(chǎn)產(chǎn)過過程程不不象象硬硬件件那那樣樣規(guī)規(guī)范范,受人人的的因因素素和和外外界界影影響響很很大大,在軟軟件件生生產(chǎn)產(chǎn)的的各各階階段段都都會會引引入入不不同同程程度度的的錯錯誤誤,造成成不不能能預(yù)預(yù)期期完完成成任任務(wù)務(wù),致使使成成本本上上升升,甚至至導(dǎo)導(dǎo)致致軟軟件件失失敗敗軟件件危危機(jī)機(jī)的的表表現(xiàn)現(xiàn)(1)軟軟件件開開發(fā)發(fā)和和維維護(hù)護(hù)費費用用急急劇劇上上升升(2)不不重重視視文文檔檔資資料料(3)產(chǎn)產(chǎn)品品質(zhì)質(zhì)量量不不可可靠靠(4)軟軟件件產(chǎn)產(chǎn)品品成成本本高高于于硬硬件件產(chǎn)產(chǎn)品品(5)供供需需失失配配軟件件危危機(jī)機(jī)的的原原因因一方方面面是是與與軟軟件件本本身身的的特特點點有有關(guān)關(guān);;另一一方方面面軟軟件件開開發(fā)發(fā)和和維維護(hù)護(hù)的的方方法法不不正正確確::忽視視軟軟件件開開發(fā)發(fā)前前期期的的需需求求分分析析;;開發(fā)過過程沒沒有統(tǒng)統(tǒng)一、、規(guī)范范方法法論的的指導(dǎo)導(dǎo);文檔資資料不不齊全全;忽視人人與人人的交交流;;忽視測測試工工作,,提交交給用用戶的的軟件件質(zhì)量量差;;輕視軟軟件的的維護(hù)護(hù)。1.4軟件工工程與與開發(fā)發(fā)準(zhǔn)則則由于認(rèn)認(rèn)識到到軟件件的設(shè)設(shè)計、、實現(xiàn)現(xiàn)、維維護(hù)和和傳統(tǒng)統(tǒng)的工工程規(guī)規(guī)則有有相同同的基基礎(chǔ),,于是是北大大西洋洋公約約組織織(NATO)于1967年首次次提出出了“軟件工工程((SoftwareEngineering)”的概念念。關(guān)于編編制軟軟件與與其他他工程程任務(wù)務(wù)類似似的提提法,,得到到了1968年在德德國召召開的的NATO軟件工工程會會議的的認(rèn)可可。委委員會會的結(jié)結(jié)論是是,軟件工工程應(yīng)應(yīng)使用用已有有的工工程規(guī)規(guī)則的的理論論和模模式,,來解解決所所謂的的"軟件危危機(jī)"。軟件危危機(jī)至至今仍仍然困困繞著著我們們,這這表明明軟件件生產(chǎn)產(chǎn)過程程在許許多方方面和和傳統(tǒng)統(tǒng)的工工程相相似,,但卻卻具有有獨特特的屬屬性和和問題題。軟件工工程概概念基本思思想是是強(qiáng)調(diào)調(diào)在軟軟件開開發(fā)過過程中中應(yīng)用用工程化化原則則,解決軟軟件的的整體體質(zhì)量量較低低、最最后期期限和和費用用沒有有保證證等問問題。。Boehm:運用現(xiàn)現(xiàn)代科科學(xué)技技術(shù)知知識來來設(shè)計計并構(gòu)構(gòu)造計算機(jī)機(jī)程序序及為開開發(fā)、、運行行和維維護(hù)這這些程程序所所必需需的相相關(guān)文件資資料IEEE:軟件工工程是是(1))把系系統(tǒng)的的,規(guī)規(guī)范的的,可可度量量的途途徑應(yīng)應(yīng)用于于軟件件開發(fā)發(fā),運運行和和維護(hù)護(hù)過程程,也也就是是把工工程應(yīng)應(yīng)用于于軟件件。((2))研究究(1)中中提到到的途途徑。。軟件工工程三三要素素軟件工工程是是一種種層次次化的的技術(shù)術(shù)軟件工具為軟件件工程程方法法提供供了自自動的的或半半自動動的軟軟件支支撐環(huán)環(huán)境軟件工工程方法為軟件件開發(fā)發(fā)提供供了““如如何做做”的的技技術(shù)軟件工工程過程定義了了:方法使使用的的順序序要求交交付的的文檔檔資料料為保證證質(zhì)量量和適適應(yīng)變變化所所需要要的管管理軟件開開發(fā)各各個階階段完完成的的里程程碑里程碑碑的含含義:里程碑碑在項項目生生命中中是一一個重重要的的界標(biāo)標(biāo)、發(fā)發(fā)展或或轉(zhuǎn)折折點一般地地,使使用它它來標(biāo)標(biāo)記項項目一一個重重要部部分的的完成成,它它并不不代表表正在在做一一個工工作,,僅指指明這這一工工作已已經(jīng)開開始或或已經(jīng)經(jīng)結(jié)束束軟件工工程三三要素素(2)軟件工工程的的基本本準(zhǔn)則則1、嚴(yán)格格階段段管理理有人經(jīng)經(jīng)統(tǒng)計計發(fā)現(xiàn)現(xiàn),在在不成成功的的軟件件項目目中有有一半半左右右是由由于計計劃不不周造造成的的,在在軟件件開發(fā)發(fā)與維維護(hù)的的漫長長的生生命周周期中中,需需要完完成許許多性性質(zhì)各各異的的工作作。這條基基本準(zhǔn)準(zhǔn)則意意味著著,應(yīng)應(yīng)該把把軟件件生命命周期期劃分分成若若干個個階段段,并并相應(yīng)應(yīng)地制制定出出切實實可行行的計計劃,,然后后嚴(yán)格格按照照計劃劃對軟軟件的的開發(fā)發(fā)與維維護(hù)工工作進(jìn)進(jìn)行管管理。。軟件工工程的的基本本準(zhǔn)則則(2)2、堅持持階段段評審審軟件的的質(zhì)量量保證證工作作不能能等到到編碼碼階段段結(jié)束束之后后再進(jìn)進(jìn)行::第一,,大部部分錯錯誤是是在編編碼之之前造造成的的,例例如,,根據(jù)據(jù)Boehm等人的的統(tǒng)計計,設(shè)設(shè)計錯錯誤占占軟件件錯誤誤的63%,編碼碼僅占占37%;第二,,錯誤誤發(fā)現(xiàn)現(xiàn)與改改正得得越晚晚,所所需付付出的的代價價也越越高。。因此此,在在每個個階段段都進(jìn)進(jìn)行嚴(yán)嚴(yán)格的的評審審,以以便盡盡早發(fā)發(fā)現(xiàn)在在軟件件開發(fā)發(fā)過程程中所所犯的的錯誤誤,是是一條條必須須遵循循的重重要原原則。。軟件工程程的基本本準(zhǔn)則(3)3、加強(qiáng)產(chǎn)產(chǎn)品控制制在軟件開開發(fā)過程程中不應(yīng)應(yīng)隨意改改變需求求,因為為改變一一項需求求往往需需要付出出較高的的代價。。但是,在在軟件開開發(fā)過程程中改變變需求又又是難免免的,由由于外部部環(huán)境的的變化,,相應(yīng)地地改變用用戶需求求是一種種客觀需需要,顯顯然不能能硬性禁禁止客戶戶提出改改變需求求的要求求,而只只能依靠靠科學(xué)的的產(chǎn)品控控制技術(shù)術(shù)來順應(yīng)應(yīng)這種要要求當(dāng)改變需需求時,,為了保保持軟件件各個配配置成分分的一致致性,必必須實行行嚴(yán)格的的產(chǎn)品控控制,其其中主要要是實行行基準(zhǔn)配配置管理理。軟件工程程的基本本準(zhǔn)則(4)4、采納新新技術(shù)60年代末提提出的結(jié)結(jié)構(gòu)程序序設(shè)計技技術(shù),以以后又進(jìn)進(jìn)一步發(fā)發(fā)展出各各種結(jié)構(gòu)構(gòu)分析((SA)與結(jié)構(gòu)構(gòu)設(shè)計((SD)技術(shù),軟件生存存周期瀑瀑布模型型80年代以后后的OO程序設(shè)計計技術(shù),,OOA/OOD/UML實踐表明明,采用用先進(jìn)的的技術(shù)既既可提高高軟件開開發(fā)的效效率,又又可提高高軟件維維護(hù)的效效率軟件工程程的基本本準(zhǔn)則(5)5、結(jié)果應(yīng)應(yīng)能清楚楚地審查查軟件產(chǎn)品品不同于于一般的的物理產(chǎn)產(chǎn)品,它它是看不不見摸不不著的邏邏輯產(chǎn)品品軟件開發(fā)發(fā)人員((或開發(fā)發(fā)小組))的工作作進(jìn)展情情況可見見性差,,難以準(zhǔn)準(zhǔn)確度量量,從而而使得軟軟件產(chǎn)品品的開發(fā)發(fā)過程比比一般產(chǎn)產(chǎn)品的開開發(fā)過程程更難于于評價和和管理為了提高高軟件開開發(fā)過程程的可見見性,更更好地進(jìn)進(jìn)行管理理,應(yīng)該該根據(jù)軟軟件開發(fā)發(fā)項目的的總目標(biāo)標(biāo)及完成成期限,,規(guī)定開開發(fā)組織織的責(zé)任任和產(chǎn)品品標(biāo)準(zhǔn),,從而使使得所得得到的結(jié)結(jié)果能夠夠清楚地地審查軟件工程程的基本本準(zhǔn)則(6)6、開發(fā)小小組的人人員應(yīng)該該少而精精軟件開發(fā)發(fā)小組的的組成人人員的素素質(zhì)應(yīng)該該好,而而人數(shù)則則不宜過過多。開發(fā)小組組人員的的素質(zhì)和和數(shù)量是是影響軟軟件產(chǎn)品品質(zhì)量和和開發(fā)效效率的重重要因素素。素質(zhì)質(zhì)高的人人員的開開發(fā)效率率比素質(zhì)質(zhì)低的人人員的開開發(fā)效率率可能高高幾倍至至幾十倍倍,而且且所開發(fā)發(fā)的軟件件中的錯錯誤明顯顯少。此外,隨隨著開發(fā)發(fā)小組人人員數(shù)目目的增加加,因為為交流情情況討論論問題而而造成的的通信開開銷也急急劇增加加。1.5軟件生存存周期軟件有一一個孕育育、誕生生、成長長、成熟熟、衰亡亡的生存存過程。。這個過過程即為為計算機(jī)機(jī)軟件的的生存期期一般說來來,軟件件生命周周期劃分分為三個個時期::計劃時期期、開發(fā)發(fā)時期、、運行時時期。計劃時時期劃分分為問題題定義和和可行性性研究;;開發(fā)時時期又劃劃分為需需求分析析、概要要設(shè)計、、詳細(xì)設(shè)設(shè)計、編編碼和測測試階段段;運行行時期主主要是在在運行中中完成各各類維護(hù)護(hù)。計劃時期期1.問題定義義(要解解決的問問題是什什么?)確定要開開發(fā)軟件件系統(tǒng)的的總目標(biāo)標(biāo)給出功能能、性能能、可靠靠性以及及接口等等方面的的要求,,系統(tǒng)定定義2.可行性研研究(對對于問題題有解決決方法嗎嗎?)估計可利利用的資資源(計算機(jī)硬硬件,軟軟件,人人力等)、成本、、效益、、開發(fā)進(jìn)進(jìn)度制定出完完成開發(fā)發(fā)任務(wù)的的實施計計劃和解解決方案案,可行性研研究報告告開發(fā)時期期1.需求分析析(為了了解決問問題,目目標(biāo)系統(tǒng)統(tǒng)必須做做什么??)對待開發(fā)發(fā)軟件提提出的需需求進(jìn)行行分析并并給出詳詳細(xì)的定定義編寫軟件需求求說明書書或系統(tǒng)功功能說明明書及初初步的系系統(tǒng)用戶戶手冊提交管理理機(jī)構(gòu)評評審開發(fā)時期期(2)2.概要設(shè)計計(怎樣樣實現(xiàn)目目標(biāo)系統(tǒng)統(tǒng)?)把各項需需求轉(zhuǎn)換換成軟件件的體系系結(jié)構(gòu),,結(jié)構(gòu)中中每一組組成部分分都是意意義明確確的模塊塊,每個個模塊都都和某些些需求相相對應(yīng)編寫概要要設(shè)計說說明書3.詳細(xì)設(shè)計計(怎樣樣具體實實現(xiàn)這個個系統(tǒng)??)對每個模模塊要完完成的工工作進(jìn)行行具體的的描述,,為源程程序編寫寫打下基基礎(chǔ)編寫詳細(xì)細(xì)設(shè)計說說明書開發(fā)時期期(3)4.編碼把軟件設(shè)設(shè)計轉(zhuǎn)換換成計算算機(jī)可以以接受的的程序代代碼,即即寫成以以某一種種特定程程序設(shè)計計語言表表示的““源程序序清單””寫出的程程序應(yīng)當(dāng)當(dāng)是結(jié)構(gòu)構(gòu)良好、、清晰易易讀的,,且與設(shè)設(shè)計相一一致的5.測試單元測試試,查找找各模塊塊在功能能和結(jié)構(gòu)構(gòu)上存在在的問題題并加以以糾正組裝測試試,將已已測試過過的模塊塊按一定定順序組組裝起來來按規(guī)定的的各項需需求,逐逐項進(jìn)行行有效性性測試,,決定已已開發(fā)的的軟件是是否合格格,能否否交付用用戶使用用運行時期期運行時期期的主要要工作是是維護(hù)改正性維維護(hù)運行中發(fā)發(fā)現(xiàn)了軟軟件中的的錯誤需需要修正正適應(yīng)性維維護(hù)為了適應(yīng)應(yīng)變化了了的軟件件工作環(huán)環(huán)境,需需做適當(dāng)當(dāng)變更完善性維維護(hù)為了增強(qiáng)強(qiáng)軟件的的功能需需做變更更各階段工工作小結(jié)結(jié)階段關(guān)鍵問題題結(jié)束標(biāo)準(zhǔn)準(zhǔn)問題定義義問題是什什么關(guān)于規(guī)模模和目標(biāo)標(biāo)的報告告書可行性研研究有可行的的解系統(tǒng)的高高層邏輯輯模型需求分析析系統(tǒng)必須須做什么么,功能能系統(tǒng)邏輯輯模型總體設(shè)計計概括地說說,應(yīng)該該如何解解決問題題可能解法法詳細(xì)設(shè)計計怎樣具體體實現(xiàn)編碼規(guī)格格說明各階段工工作小結(jié)結(jié)(2)階段關(guān)鍵問題題結(jié)束標(biāo)準(zhǔn)準(zhǔn)編碼和單單元測試試正確的程程序模塊塊源程序清單,,單元測試方案和結(jié)果綜合測試符合要求的軟軟件綜合測試方案案和結(jié)果,完整一致的軟軟件配置維護(hù)持久地滿足用用戶需要的軟軟件完整準(zhǔn)確的維維護(hù)記錄1.6軟件生存期模模型軟件生存期模模型是跨越整整個生存期的的系統(tǒng)開發(fā)、、運作和維護(hù)護(hù)所實施的全全部過程、活活動和任務(wù)的的結(jié)構(gòu)框架軟件開發(fā)模型型是對軟件過過程的建模瀑布模型原型模型增量模型螺旋模型瀑布模型可行性研究與計劃需求分析設(shè)計編碼運行維護(hù)測試定義階段開發(fā)階段維護(hù)階段瀑布模型(2)瀑布模型的特特點1.階段間具有有順序性和依依賴性關(guān)系順序性的含義是必須須待前一階段段的工作完成成之后,才能能進(jìn)行下一階階段的工作。。依賴性的含義是前一一階段的輸出出就是后一階階段的輸入,,只有前一階階段的輸出正正確,后一階階段的工作才才有可能獲得得正確的結(jié)果果。瀑布模型(3)2.推遲實現(xiàn)實踐表明,編編碼開始得越越早完成開發(fā)發(fā)工作所需要要的時間反而而越長這是因為,前前期階段的工工作沒完全做做好,就急于于考慮程序?qū)崒崿F(xiàn),其結(jié)果果導(dǎo)致大量返返工,有時甚甚至產(chǎn)生無法法彌補(bǔ)的問題題,帶來嚴(yán)重重后果瀑布模型(4)3.質(zhì)量保證各階段都必須須完成規(guī)定的的文檔。完整整、正確、合合格的文檔不不僅是軟件開開發(fā)時期各類類人員之間相相互通信的媒媒介,也是軟軟件維護(hù)的重重要依據(jù)各階段結(jié)束前前都要對所完完成的文檔進(jìn)進(jìn)行評審,以以便及時發(fā)現(xiàn)現(xiàn)問題,改正正錯誤瀑布模型(5)瀑布模型的優(yōu)優(yōu)點“線性”是人人們最容易掌掌握并能熟練練應(yīng)用的思想想方法。當(dāng)人人們碰到一個個復(fù)雜的“非非線性”問題題時,總是千千方百計地將將其分解或轉(zhuǎn)轉(zhuǎn)化為一系列列簡單的線性性問題,然后后逐個解決。。一個軟件系統(tǒng)統(tǒng)的整體可能能是復(fù)雜的,,而單個子程程序總是簡單單的,可以用用線性的方式式來實現(xiàn)。線性是一種簡簡潔,簡潔就就是美。領(lǐng)會會線性的精神神,不要呆板板地套用線性性模型的外表表,而應(yīng)該用用活它。例如如增量模型實實質(zhì)就是分段段的線性模型型,螺旋模型型則是接連的的彎曲了的線線性模型,在在其它模型中中也能夠找到到線性模型的的影子。瀑布模型(6)瀑布模型的缺缺點(1)各個階段段的劃分完全全固定,階段段之間產(chǎn)生大大量的文檔,,極大地增加加了工作量(2)由于開發(fā)發(fā)模型是線性性的,用戶只只有等到整個個過程的末期期才能見到開開發(fā)成果,從從而增加了開開發(fā)的風(fēng)險(3)早期的錯錯誤可能要等等到開發(fā)后期期的測試階段段才能發(fā)現(xiàn),,進(jìn)而帶來嚴(yán)嚴(yán)重的后果快速原型模模型由于在項目目開發(fā)的初初始階段人人們對軟件件的需求認(rèn)認(rèn)識常常不不夠清晰,,因而使得得開發(fā)項目目難于做到到一次開發(fā)發(fā)成功,出出現(xiàn)返工再再開發(fā)在所所難免。做兩次第一次只是是試驗開發(fā),其目標(biāo)只只是在于探探索可行性性,弄清軟軟件需求第二次則在在此基礎(chǔ)上上獲得較為為滿意的軟件產(chǎn)品品需求分析原型開發(fā)與建模原型評價系統(tǒng)設(shè)計系統(tǒng)實現(xiàn)用戶反饋增量模型在增量模型型中,軟件件被作為一一系列的增增量構(gòu)件來來設(shè)計、實實現(xiàn)、集成成和測試,,每一個構(gòu)構(gòu)件是由多多種相互作作用的模塊塊所形成的的提供特定定功能的代代碼片段構(gòu)構(gòu)成增量模型在在各個階段段并不交付付一個可運運行的完整整產(chǎn)品,而而是交付滿滿足客戶需需求的一個個子集的可可運行產(chǎn)品品。整個產(chǎn)產(chǎn)品被分解解成若干個個構(gòu)件,開開發(fā)人員逐逐個構(gòu)件地地交付產(chǎn)品品,這樣做做的好處是是軟件開發(fā)發(fā)可以較好好地適應(yīng)變變化,客戶戶可以不斷斷地看到所所開發(fā)的軟軟件,從而而降低開發(fā)發(fā)風(fēng)險。增量模型(2)在使用增量量模型時,,第一個增增量往往是是實現(xiàn)基本本需求的核核心產(chǎn)品。。核心產(chǎn)品交交付用戶使使用后,經(jīng)經(jīng)過評價形形成下一個個增量的開開發(fā)計劃,,它包括對對核心產(chǎn)品品的修改和和一些新功功能的發(fā)布布。這個過程在在每個增量量發(fā)布后不不斷重復(fù),,直到產(chǎn)生生最終的完完善產(chǎn)品。。增量模型(3)例如使用增量模模型開發(fā)字字處理軟件件??梢钥伎紤]:第一個增量發(fā)布基基本的文件件管理、編編輯和文檔檔生成功能能第二個增量發(fā)布更更加完善的的編輯和文文檔生成功功能第三個增量實現(xiàn)拼拼寫和文法法檢查功能能第四個增量完成高高級的頁面面布局功能能增量量模模型型(4)增量量模模型型也也存存在在以以下下缺缺陷陷(1)由由于于各各個個構(gòu)構(gòu)件件是是逐逐漸漸并并入入已已有有的的軟軟件件體體系系結(jié)結(jié)構(gòu)構(gòu)中中的的,,所所以以加加入入構(gòu)構(gòu)件件必必須須不不破破壞壞已已構(gòu)構(gòu)造造好好的的系系統(tǒng)統(tǒng)部部分分,,這這需需要要軟軟件件具具備備開開放放式式的的體體系系結(jié)結(jié)構(gòu)構(gòu)。。(2)在在開開發(fā)發(fā)過過程程中中,,需需求求的的變變化化是是不不可可避避免免的的。。增增量量模模型型的的靈靈活活性性可可以以使使其其適適應(yīng)應(yīng)這這種種變變化化的的能能力力大大大大優(yōu)優(yōu)于于瀑瀑布布模模型型和和快快速速原原型型模模型型,,但但也也很很容容易易退退化化為為邊邊做做邊邊改改模模型型,,從從

溫馨提示

  • 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

提交評論