版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟 件 工 程軟 件 工 程電子教案課程名稱(chēng):軟件工程 第1講班 級(jí):日 期:教 室:教學(xué)題目:第1章 概述 1.1 軟件 1.2 軟件工程的概念教學(xué)目的:1. 了解軟件、軟件危機(jī)等概念 2. 掌握軟件工程的定義、原理、目標(biāo)和原則教學(xué)重點(diǎn):軟件工程的定義、原理、目標(biāo)和原則教學(xué)難點(diǎn):軟件工程的目標(biāo)和原則教 具:多媒體教室、電子教案作 業(yè):看書(shū)第一章 軟件與軟件工程 1.1 軟件 1.2 軟件工程的概念 1.3 軟件生存周期 1.4 軟件開(kāi)發(fā)模式 1.5 軟件開(kāi)發(fā)方法、工具及環(huán)境1.1 軟件(Software) 1.1.1 軟件與軟件的組成計(jì)算機(jī)軟件與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、 規(guī)則及任何與
2、之有關(guān)的文檔和數(shù)據(jù)。軟件 程序及有關(guān)數(shù)據(jù)機(jī)器可執(zhí)行; 文檔(與軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、使用、 培訓(xùn)有關(guān))不可執(zhí)行。程序(program)用程序設(shè)計(jì)語(yǔ)言描述的,適合 于計(jì)算機(jī)處理的語(yǔ)句序列。程序設(shè)計(jì)語(yǔ)言三種類(lèi)型: 1機(jī)器語(yǔ)言、匯編語(yǔ)言:依賴于機(jī)器,面向機(jī)器 2高級(jí)語(yǔ)言:獨(dú)立于機(jī)器,面向過(guò)程或面向?qū)ο?3面向問(wèn)題語(yǔ)言:獨(dú)立于機(jī)器,非過(guò)程式語(yǔ)言(4GL)文檔(document)一種數(shù)據(jù)媒體和其上所記錄的數(shù)據(jù)。文檔記錄軟件開(kāi)發(fā)活動(dòng)和階段成果,具有永久性,可供 人或機(jī)器閱讀。文檔可用于 專(zhuān)業(yè)人員和用戶之間的通信和交流; 軟件開(kāi)發(fā)過(guò)程的管理; 運(yùn)行階段的維護(hù)。面向過(guò)程1. 軟件的特點(diǎn)軟件是邏輯產(chǎn)品,硬件是物
3、理產(chǎn)品。特點(diǎn):(1)軟件開(kāi)發(fā)更依賴于開(kāi)發(fā)人員的業(yè)務(wù)素質(zhì)、智力、 人員的組織、合作和管理。軟件開(kāi)發(fā)、設(shè)計(jì)幾 乎都是從頭開(kāi)始,成本和進(jìn)度很難估計(jì)。(2)軟件存在潛伏錯(cuò)誤,硬件錯(cuò)誤一般能排除。(3)軟件開(kāi)發(fā)成功后,只需對(duì)原版進(jìn)行復(fù)制。1. 軟件的特點(diǎn)(續(xù))(4)軟件在使用過(guò)程中維護(hù)復(fù)雜: 1)糾錯(cuò)性維護(hù)改正運(yùn)行期間發(fā)現(xiàn)的潛伏錯(cuò)誤; 2)完善性維護(hù)提高或完善軟件的性能; 3)適應(yīng)性維護(hù)修改軟件,以適應(yīng)軟硬件環(huán)境 的變化; 4)預(yù)防性維護(hù)改進(jìn)軟件未來(lái)的可維護(hù)性和 可靠性。(5)軟件不會(huì)磨損和老化。2. 軟件的發(fā)展第一階段20世紀(jì)60年代中期以前,軟件開(kāi)發(fā)處于 個(gè)體化生產(chǎn)狀態(tài)。在這一階段中,軟件 還沒(méi)有系
4、統(tǒng)化的開(kāi)發(fā)方法。目標(biāo)主要集 中在如何提高時(shí)空效率上。 第二階段從20世紀(jì)60年代中期到70年代末期。軟 件開(kāi)發(fā)已進(jìn)入了作坊式生產(chǎn)方式,即出 現(xiàn)了“軟件車(chē)間”。軟件開(kāi)發(fā)開(kāi)始形成產(chǎn) 品。到20世紀(jì)60年代末,“軟件危機(jī)”變 得十分嚴(yán)重。2. 軟件的發(fā)展第三階段從20世紀(jì)70年代中期到20世紀(jì)80年代末 期。軟件開(kāi)發(fā)進(jìn)入了產(chǎn)業(yè)化生產(chǎn),即出 現(xiàn)了眾多大型的“軟件公司”。在這一階 段,軟件開(kāi)發(fā)開(kāi)始采用了“工程”的方法, 軟件產(chǎn)品急劇增加,質(zhì)量也有了很大的 提高。 第四階段從20世紀(jì)80年代末期開(kāi)始的。這是一個(gè) 軟件產(chǎn)業(yè)大發(fā)展的時(shí)期。也是軟件工程 大發(fā)展的時(shí)期,人們開(kāi)始采用面向?qū)ο?的技術(shù)和可視化的集成開(kāi)
5、發(fā)環(huán)境。1.1.2 軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件開(kāi)發(fā)、使用與維護(hù) 過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難題。 1軟件危機(jī)的表現(xiàn)1)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確。常 常出現(xiàn)實(shí)際成本比估算成本高出一個(gè)數(shù)量級(jí)、實(shí) 際進(jìn)度比計(jì)劃進(jìn)度拖延幾個(gè)月甚至幾年的現(xiàn)象, 從而降低了開(kāi)發(fā)商的信譽(yù),引起用戶不滿。2)用戶對(duì)已完成的軟件不滿意的現(xiàn)象時(shí)有發(fā)生。3)軟件產(chǎn)品的質(zhì)量往往是靠不住的。1軟件危機(jī)的表現(xiàn)4)軟件常常是不可維護(hù)的。5)軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料。文檔資料不全或不 合格,必將給軟件開(kāi)發(fā)和維護(hù)工作帶來(lái)許多難以想 象的困難和難以解決的問(wèn)題。6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占比例逐年上升。 特別是軟件
6、維護(hù)成本迅速增加,已經(jīng)占據(jù)軟硬件總 成本的40%75%,如圖1-1-1所示。7)開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)跟不上軟件需求。 硬 件軟件開(kāi)發(fā)軟件維護(hù)1955年 1970年 1985年100%80%60%40%20%圖1-1-1 軟件、硬件成本變化趨勢(shì) 2產(chǎn)生軟件危機(jī)的原因1)用戶對(duì)軟件需求的描述不精確。2)軟件開(kāi)發(fā)人員對(duì)用戶需求的理解有偏差,這將導(dǎo)致 軟件產(chǎn)品與用戶的需求不一致。3)缺乏處理大型軟件項(xiàng)目的經(jīng)驗(yàn)。開(kāi)發(fā)大型軟件項(xiàng)目 需要組織眾多人員共同完成。一般來(lái)說(shuō),多數(shù)管理 人員缺乏大型軟件的開(kāi)發(fā)經(jīng)驗(yàn),而多數(shù)軟件開(kāi)發(fā)人 員又缺乏大型軟件項(xiàng)目的管理經(jīng)驗(yàn),致使各類(lèi)人員 的信息交流不及時(shí)、不準(zhǔn)確、容易產(chǎn)生誤
7、解。2產(chǎn)生軟件危機(jī)的原因4)開(kāi)發(fā)大型軟件易產(chǎn)生疏漏和錯(cuò)誤。5)缺乏有力的方法學(xué)的指導(dǎo)和有效的開(kāi)發(fā)工 具的支持。軟件開(kāi)發(fā)過(guò)多地依靠程序員的 “技巧”,從而加劇了軟件產(chǎn)品的個(gè)性化。6)面對(duì)日益增長(zhǎng)的軟件需求,人們顯得力不 從心。從某種意義上說(shuō),解決供求矛盾將 是一個(gè)永恒的主題。3緩解軟件危機(jī)的途徑到了20世紀(jì)60年代末期,軟件危機(jī)已相當(dāng)嚴(yán)重。這促使計(jì)算機(jī)科學(xué)家們開(kāi)始探索緩解軟件危機(jī)的方法。他們提出了“軟件工程”的概念,即用現(xiàn)代工程的原理、技術(shù)和方法進(jìn)行軟件的開(kāi)發(fā)、管理、維護(hù)和更新。于是,開(kāi)創(chuàng)了計(jì)算機(jī)科學(xué)技術(shù)的一個(gè)新的研究領(lǐng)域。1.2 軟件工程的概念 1.2.1 軟件工程的定義1968年,北大西洋公
8、約組織在原西德召開(kāi)計(jì)算機(jī)科學(xué)會(huì)議,由Fritz Bauer首次提出了“軟件工程”的概念。 軟件工程用工程、科學(xué)和數(shù)學(xué)的原則與方法 開(kāi)發(fā)、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù) 和管理方法。 軟件工程由方法、工具和過(guò)程三部分組成,稱(chēng)軟件工程的三要素。1.2.1 軟件工程的定義軟件工程中的各種方法是完成軟件工程項(xiàng)目的技術(shù)手段,它們支持軟件工程的各個(gè)階段。軟件工程使用的軟件工具能夠自動(dòng)或半自動(dòng)地支持軟件的開(kāi)發(fā)、管理和文檔的生成。軟件工程中的過(guò)程貫穿于整個(gè)工程的各個(gè)環(huán)節(jié),在這一過(guò)程中,管理人員應(yīng)對(duì)軟件開(kāi)發(fā)的質(zhì)量、進(jìn)度、成本等進(jìn)行評(píng)估、管理和控制,包括計(jì)劃跟蹤與控制、成本估算、人員的組織、質(zhì)量保證、配置管理等1.2.
9、2 軟件工程的基本原理著名的軟件工程專(zhuān)家B. W. Boehm于1983年綜合了軟件工程專(zhuān)家學(xué)者們的意見(jiàn)并總結(jié)了開(kāi)發(fā)軟件的經(jīng)驗(yàn),提出了軟件工程的7條基本原理。這7條原理被認(rèn)為是確保軟件產(chǎn)品質(zhì)量和開(kāi)發(fā)效率的原理的最小集合,又是相互獨(dú)立、缺一不可、相當(dāng)完備的最小集合。下面就簡(jiǎn)單介紹軟件工程的這7條原理:1用分階段的生存周期計(jì)劃嚴(yán)格管理這條基本原理是應(yīng)該把軟件生存周期劃分成若干個(gè)階段,并相應(yīng)地制定出切實(shí)可行的計(jì)劃,然后嚴(yán)格按照計(jì)劃對(duì)軟件開(kāi)發(fā)與維護(hù)工作進(jìn)行管理。應(yīng)該制定的計(jì)劃有項(xiàng)目概要計(jì)劃、里程碑計(jì)劃、項(xiàng)目控制計(jì)劃、產(chǎn)品控制計(jì)劃、驗(yàn)證計(jì)劃和運(yùn)行維護(hù)計(jì)劃等。各級(jí)管理人員都必須嚴(yán)格按照計(jì)劃對(duì)軟件開(kāi)發(fā)和維護(hù)
10、工作進(jìn)行管理。據(jù)統(tǒng)計(jì),不成功的軟件項(xiàng)目中,有一半左右是由于計(jì)劃不周造成的。2堅(jiān)持進(jìn)行階段評(píng)審據(jù)統(tǒng)計(jì),在軟件生存周期各階段中,編碼階段之前的錯(cuò)誤約占63%,而編碼錯(cuò)誤僅占37%。另外,錯(cuò)誤發(fā)現(xiàn)并改正得越晚,所花費(fèi)的代價(jià)越高。堅(jiān)持在每個(gè)階段結(jié)束前進(jìn)行嚴(yán)格的評(píng)審,就可以盡早發(fā)現(xiàn)錯(cuò)誤,從而可以最小的代價(jià)改正錯(cuò)誤。因此,這是一條必須堅(jiān)持的重要原理。3實(shí)行嚴(yán)格的產(chǎn)品控制決不能隨意改變需求,只能依靠科學(xué)的產(chǎn)品控制技術(shù)來(lái)順應(yīng)用戶提出的改變需求的要求。為了保持軟件各個(gè)配置成分的一致性,必須實(shí)行嚴(yán)格的產(chǎn)品控制。其中主要是實(shí)行基準(zhǔn)配置管理(又稱(chēng)為變動(dòng)控制),即凡是修改軟件的建議,尤其是涉及基本配置的修改建議,都必須
11、按規(guī)程進(jìn)行嚴(yán)格的評(píng)審,評(píng)審?fù)ㄟ^(guò)后才能實(shí)施。這里的“基準(zhǔn)配置”是指經(jīng)過(guò)階段評(píng)審后的軟件配置成分,即各階段產(chǎn)生的文檔或程序代碼等。4采用現(xiàn)代程序設(shè)計(jì)技術(shù)實(shí)踐表明,采用先進(jìn)的程序設(shè)計(jì)技術(shù)既可以提高軟件開(kāi)發(fā)與維護(hù)的效率,又可以提高軟件的質(zhì)量。多年來(lái),人們一直致力于研究新的“程序設(shè)計(jì)技術(shù)”。比如,20世紀(jì)60年代末提出的結(jié)構(gòu)程序設(shè)計(jì)技術(shù);后來(lái)又發(fā)展出各種結(jié)構(gòu)分析(SA)和結(jié)構(gòu)設(shè)計(jì)(SD)技術(shù);之后又出現(xiàn)了面向?qū)ο蠓治觯∣OA)和面向?qū)ο笤O(shè)計(jì)(OOD)技術(shù)等等。5結(jié)果應(yīng)能清楚地審查軟件產(chǎn)品是一種看不見(jiàn)、摸不著的邏輯產(chǎn)品。因此,軟件開(kāi)發(fā)小組的工作進(jìn)展情況可見(jiàn)性差,難于評(píng)價(jià)和管理。為了更好地進(jìn)行評(píng)價(jià)與管理,應(yīng)
12、根據(jù)軟件開(kāi)發(fā)的總目標(biāo)和完成期限,盡量明確地規(guī)定軟件開(kāi)發(fā)小組的責(zé)任和產(chǎn)品標(biāo)準(zhǔn),從而使所得到的結(jié)果能清楚地審查。6開(kāi)發(fā)小組的人員應(yīng)少而精軟件開(kāi)發(fā)小組人員素質(zhì)和數(shù)量是影響軟件質(zhì)量和開(kāi)發(fā)效率的重要因素。實(shí)踐表明,素質(zhì)高的人員與素質(zhì)低的人員相比,開(kāi)發(fā)效率可能高幾倍至幾十倍、而且所開(kāi)發(fā)的軟件中的錯(cuò)誤也要少得多。另外,開(kāi)發(fā)小組的人數(shù)不宜過(guò)多,因?yàn)殡S著人數(shù)的增加,人員之間交流情況、討論問(wèn)題的通信開(kāi)銷(xiāo)將急劇增加,這不但不能提高生產(chǎn)率,反而由于誤解等原因可能增加出錯(cuò)的概率。7承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性遵循上述六條基本原理,就能夠較好地實(shí)現(xiàn)軟件的工程化生產(chǎn)。但是,軟件工程不能停留在已有的技術(shù)水平上,應(yīng)積極主動(dòng)
13、地采納或創(chuàng)造新的軟件技術(shù),要注意不斷總結(jié)經(jīng)驗(yàn),收集工作量、進(jìn)度、成本等數(shù)據(jù),并進(jìn)行出錯(cuò)類(lèi)型和問(wèn)題報(bào)告的統(tǒng)計(jì)。這些數(shù)據(jù)既可用來(lái)評(píng)估新的軟件技術(shù)的效果,又可用來(lái)指明應(yīng)優(yōu)先進(jìn)行研究的軟件工具和技術(shù)。1.2.3 軟件工程的目標(biāo)軟件工程的目標(biāo)是在給定成本、進(jìn)度的前提下,開(kāi)發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性并滿足用戶需求的軟件產(chǎn)品。名詞解釋1)可修改性(modifiability),允許對(duì)軟件系統(tǒng)進(jìn)行 修改而不增加其復(fù)雜性。它支持軟件調(diào)試與維護(hù)。2)有效性(efficiency),指軟件系統(tǒng)的時(shí)間和空間 效率。這是一個(gè)應(yīng)當(dāng)努力追求的重要
14、目標(biāo)。3)可靠性(reliability),是指在給定的時(shí)間間隔內(nèi), 程序成功運(yùn)行的概率。可靠性是衡量軟件質(zhì)量的一 個(gè)重要目標(biāo)。名詞解釋4)可理解性(understandability),指系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問(wèn)題的需求。可理解性有助于控制軟件系統(tǒng)的復(fù)雜性,并支持軟件的維護(hù)、移植和重用。5)可維護(hù)性(maintainability),是指軟件產(chǎn)品交付使用后,在實(shí)現(xiàn)改正潛伏的錯(cuò)誤、改進(jìn)性能等屬性、適應(yīng)環(huán)境變化等方面工作的難易程度。由于軟件的維護(hù)費(fèi)用在整個(gè)軟件生存周期中占主要的比重,因此,可維護(hù)性是軟件工程中的一個(gè)十分重要的目標(biāo)。軟件的可理解性和可修改性支持軟件的可維護(hù)性。名詞解釋6)可
15、重用性(reusability),是指軟部件可以在多種場(chǎng)合使用的程度。 概念或功能相對(duì)獨(dú)立的一個(gè)或一組相關(guān)模塊可構(gòu)成一個(gè)軟部件。軟部件應(yīng)具有清晰的結(jié)構(gòu)和注釋、正確的編碼和較高的時(shí)空效率??蓪⒏鞣N軟部件按照某種規(guī)則放在軟部件庫(kù)中供開(kāi)發(fā)人員選用。 廣義地講,可重用性還應(yīng)包括應(yīng)用項(xiàng)目、規(guī)格說(shuō)明、設(shè)計(jì)、概念和方法等等的重用。一般來(lái)說(shuō),重用的層次越高,帶來(lái)的效益越大。 可重用性有助于提高軟件產(chǎn)品的質(zhì)量和開(kāi)發(fā)效率、降低軟件開(kāi)發(fā)和維護(hù)費(fèi)用。名詞解釋7)可適應(yīng)性(adaptability),是指軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。 選擇廣為流行的軟硬件支持環(huán)境、采用廣為流行的程序設(shè)計(jì)語(yǔ)言
16、編碼、采用標(biāo)準(zhǔn)的術(shù)語(yǔ)和格式書(shū)寫(xiě)文檔可增強(qiáng)軟件產(chǎn)品的可適應(yīng)性。8)可移植性(portability),是指軟件從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境移植到另一個(gè)上去的難易程度。 采用通用的運(yùn)行支持環(huán)境和盡量通用的程序設(shè)計(jì)語(yǔ)言的標(biāo)準(zhǔn)部分可提高可移植性。而應(yīng)將依賴于計(jì)算機(jī)系統(tǒng)的低級(jí)(物理)特征部分相對(duì)獨(dú)立、集中起來(lái)??梢浦残灾С周浖目芍赜眯院涂蛇m應(yīng)性。名詞解釋9)可追蹤性(traceability),是指根據(jù)軟件需求對(duì)軟件設(shè)計(jì)、程序進(jìn)行正向追蹤,或根據(jù)程序、軟件設(shè)計(jì)對(duì)軟件需求進(jìn)行逆向追蹤的能力。軟件開(kāi)發(fā)各階段的文檔和程序的完整性、一致性、可理解性支持軟件的可追蹤性。10)可互操作性(interoperabilit
17、y),是指多個(gè)軟件元素相互通信并協(xié)同完成任務(wù)的能力。1.2.4 軟件工程的原則1抽象(abstraction),抽取各個(gè)事物中共同的最基本的特征和行為,暫時(shí)忽略它們之間的差異。一般采用分層次抽象的方法來(lái)控制軟件開(kāi)發(fā)過(guò)程的復(fù)雜性。抽象使軟件的可理解性增強(qiáng)并有利于開(kāi)發(fā)過(guò)程的管理。2信息隱藏(information hiding),將模塊內(nèi)部的信息(數(shù)據(jù)和過(guò)程)封裝起來(lái)。其他模塊只能通過(guò)簡(jiǎn)單的模塊接口來(lái)調(diào)用該模塊,而不能直接訪問(wèn)該模塊內(nèi)部的數(shù)據(jù)或過(guò)程,即將模塊設(shè)計(jì)成“黑箱”。信息隱藏的原則可使開(kāi)發(fā)人員把注意力集中于更高層次的抽象上。1.2.4 軟件工程的原則4局部化(localization),即在
18、一個(gè)物理模塊內(nèi)集中邏輯上相互關(guān)聯(lián)的計(jì)算資源。局部化支持信息隱藏,從而保證模塊之間具有松散的耦合、模塊內(nèi)部有較強(qiáng)的內(nèi)聚。這有助于控制每一個(gè)解的復(fù)雜性。5一致性(consistency),整個(gè)軟件系統(tǒng)(包括程序、數(shù)據(jù)和文檔)的各個(gè)模塊應(yīng)使用一致的概念、符號(hào)和術(shù)語(yǔ);程序內(nèi)部接口應(yīng)保持一致;軟件與環(huán)境的接口應(yīng)保持一致;系統(tǒng)規(guī)格說(shuō)明應(yīng)與系統(tǒng)行為保持一致;用于形式化規(guī)格說(shuō)明的公理系統(tǒng)應(yīng)保持一致。1.2.4 軟件工程的原則6完全性(completeness),軟件系統(tǒng)不丟失任何重要成分,完全實(shí)現(xiàn)所需的系統(tǒng)功能的程度。為了保證系統(tǒng)的完全性,在軟件的開(kāi)發(fā)和維護(hù)過(guò)程中需要嚴(yán)格的技術(shù)評(píng)審。7可驗(yàn)證性(verifia
19、bility),開(kāi)發(fā)大型軟件系統(tǒng)需要對(duì)系統(tǒng)逐層分解。系統(tǒng)分解應(yīng)遵循易于檢查、測(cè)試、評(píng)審的原則,以使系統(tǒng)可驗(yàn)證。抽象、信息隱藏、模塊化和局部化的原則支持可理解性、可修改性、可靠性等目標(biāo),并可提高軟件產(chǎn)品的質(zhì)量和開(kāi)發(fā)效率;一致性、完全性和可驗(yàn)證性等原則可以幫助軟件開(kāi)發(fā)人員去實(shí)現(xiàn)一個(gè)正確的系統(tǒng)。課程名稱(chēng):軟件工程 第2講班 級(jí):日 期:教 室:教學(xué)題目:1.3 軟件生存周期 1.5 方法、工具及環(huán)境教學(xué)目的:掌握軟件生存周期的劃分, 了解各個(gè)階段 的任務(wù);熟悉幾種軟件開(kāi)發(fā)模型、了解 CASE工具及環(huán)境。教學(xué)重點(diǎn):軟件生存周期、軟件開(kāi)發(fā)模型。教學(xué)難點(diǎn):開(kāi)發(fā)模型教 具:多媒體教室、電子教案作 業(yè):看書(shū)1
20、.3 軟件生存周期軟件從定義開(kāi)始,經(jīng)過(guò)開(kāi)發(fā)、使用和維護(hù), 直到最終退役的全過(guò)程稱(chēng)為軟件生存周期??蓪④浖嬷芷趧澐譃?個(gè)過(guò)程共9個(gè)階段。3個(gè)過(guò)程是:軟件定義過(guò)程、軟件開(kāi)發(fā)過(guò)程、 軟件使用與維護(hù)過(guò)程。9個(gè)階段有:可行性研究、需求分析、概要設(shè) 計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、組裝測(cè)試、 驗(yàn)收測(cè)試、使用與維護(hù)、退役。 它們之間的關(guān)系如圖1-3-1所示。圖1-3-1 軟件生存周期階段的劃分使用與維護(hù)驗(yàn)收測(cè)試組裝測(cè)試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役開(kāi)發(fā)過(guò)程使用與維護(hù)過(guò)程定義過(guò)程可行性研究1.3.1 軟件定義軟件定義的基本任務(wù)是確定軟件系統(tǒng)的工程需求,也就是要搞清“做什么”。軟件定義過(guò)程可通過(guò)軟件系統(tǒng)的可行性研究和
21、需求分析兩個(gè)階段來(lái)完成。1可行性研究本階段的任務(wù)是根據(jù)用戶提出的工程項(xiàng)目的性質(zhì)、目標(biāo)和規(guī)模,進(jìn)一步了解用戶的要求及現(xiàn)有的環(huán)境及條件,從技術(shù)、經(jīng)濟(jì)和社會(huì)等多方面研究并論證該項(xiàng)目的可行性。即該項(xiàng)目是否值得去解決,是否存在可行的解決辦法。此時(shí),系統(tǒng)分析人員應(yīng)在用戶的配合下對(duì)用戶的要求和現(xiàn)有的環(huán)境進(jìn)行深入調(diào)查并寫(xiě)出調(diào)研報(bào)告。進(jìn)而進(jìn)行可行性論證。可行性論證包括經(jīng)濟(jì)可行性、技術(shù)可行性、操作可行性、法律可行性等。在此基礎(chǔ)上還要制定初步的項(xiàng)目計(jì)劃,包括需要的軟硬件資源、定義任務(wù)、風(fēng)險(xiǎn)分析、成本/效益分析以及進(jìn)度安排等??尚行匝芯康慕Y(jié)果將是使用部門(mén)負(fù)責(zé)人做出是否繼續(xù)進(jìn)行該項(xiàng)目決定的重要依據(jù)。2需求分析 1)需求
22、分析的任務(wù) 需求分析的任務(wù)是確定待開(kāi)發(fā)的軟件系統(tǒng)“做什么”。 具體任務(wù)包括確定軟件系統(tǒng)的功能需求、性能需求和運(yùn)行環(huán)境約束,編制軟件需求規(guī)格說(shuō)明書(shū)、軟件系統(tǒng)的驗(yàn)收測(cè)試準(zhǔn)則和初步的用戶手冊(cè)。2需求分析2)需求分析的實(shí)現(xiàn)途徑 軟件系統(tǒng)需求一般由用戶提出。系統(tǒng)分析員和開(kāi)發(fā)人員在需求分析階段必須與用戶反復(fù)討論、協(xié)商,充分交流信息,并用某種方法和工具構(gòu)建軟件系統(tǒng)的邏輯模型。為了使開(kāi)發(fā)方與用戶對(duì)待開(kāi)發(fā)軟件系統(tǒng)達(dá)成一致的理解,必須建立相應(yīng)的需求文檔。有時(shí)對(duì)大型、復(fù)雜的軟件系統(tǒng)的主要功能、接口、人機(jī)界面等還要進(jìn)行模擬或建造原型,以便向用戶和開(kāi)發(fā)方展示待開(kāi)發(fā)軟件系統(tǒng)的主要特征。確定軟件需求的過(guò)程有時(shí)需要反復(fù)多次,
23、最終得到用戶和開(kāi)發(fā)者的確認(rèn)。2需求分析3)需求分析的階段成果 需求分析階段的主要成果有軟件需求規(guī)格說(shuō)明、軟件驗(yàn)收測(cè)試計(jì)劃和準(zhǔn)則、初步的用戶手冊(cè)等。其中,軟件需求規(guī)格說(shuō)明(Software Requirements Specification,即SRS),是一個(gè)關(guān)鍵性的文檔。多數(shù)場(chǎng)合,面向開(kāi)發(fā)者的軟件需求用需求規(guī)格說(shuō)明語(yǔ)言來(lái)描述,它是軟件開(kāi)發(fā)人員進(jìn)行軟件設(shè)計(jì)的依據(jù);另一方面,從某種意義上講,SRS又起到與用戶簽定合同的合同書(shū)的作用。因此,在SRS中應(yīng)包括軟件系統(tǒng)的全部功能需求、性能需求、接口需求、設(shè)計(jì)需求、基本結(jié)構(gòu)、開(kāi)發(fā)標(biāo)準(zhǔn)和驗(yàn)收準(zhǔn)則等等。1.3.2 軟件開(kāi)發(fā)軟件開(kāi)發(fā)過(guò)程由概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)
24、現(xiàn)(即編碼與單元測(cè)試)、組裝測(cè)試、驗(yàn)收測(cè)試共5個(gè)階段組成。其中,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)統(tǒng)稱(chēng)為設(shè)計(jì);編碼即編程;單元測(cè)試、組裝測(cè)試和驗(yàn)收測(cè)試統(tǒng)稱(chēng)為測(cè)試。開(kāi)發(fā)者通??商岢龆喾N設(shè)計(jì)方案,并對(duì)各種方案在功能、性能、成本、進(jìn)度等方面進(jìn)行比較和折衷,從中選出一種“最佳方案”。下面將簡(jiǎn)單地介紹軟件開(kāi)發(fā)過(guò)程中各階段的任務(wù),實(shí)現(xiàn)的途徑和階段成果。1概要設(shè)計(jì)總體設(shè)計(jì)任務(wù): 是對(duì)需求規(guī)格說(shuō)明中提供的軟件系統(tǒng)邏輯模型進(jìn)行進(jìn)一步的分解,從而建立軟件系統(tǒng)的總體結(jié)構(gòu)和各子系統(tǒng)之間、各模塊之間的關(guān)系,定義各子系統(tǒng)接口界面和各功能模塊的接口,設(shè)計(jì)全局?jǐn)?shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu),規(guī)定設(shè)計(jì)約束,制定組裝測(cè)試計(jì)劃,進(jìn)而給出每個(gè)功能模塊的功能描述、
25、全局?jǐn)?shù)據(jù)定義和外部文件定義等。1概要設(shè)計(jì)實(shí)現(xiàn)的途徑: 選擇某種方法和工具。設(shè)計(jì)的軟件系統(tǒng)應(yīng)具有良好的總體結(jié)構(gòu)、盡量降低模塊接口的復(fù)雜度,并力爭(zhēng)做到各功能模塊之間的低耦合度、而功能模塊內(nèi)部具有較高的內(nèi)聚度。階段性成果: 概要設(shè)計(jì)說(shuō)明書(shū)、 數(shù)據(jù)庫(kù)或數(shù)據(jù)結(jié)構(gòu)說(shuō)明書(shū)、 組裝測(cè)試計(jì)劃等文檔。2詳細(xì)設(shè)計(jì)任務(wù):是將概要設(shè)計(jì)產(chǎn)生的功能模塊進(jìn)一步細(xì)化,形成可編程的程序模塊,然后設(shè)計(jì)程序模塊的內(nèi)部細(xì)節(jié),包括算法、數(shù)據(jù)結(jié)構(gòu)以及各程序模塊間的接口信息,并設(shè)計(jì)模塊的單元測(cè)試計(jì)劃。途徑:可以采用結(jié)構(gòu)化的設(shè)計(jì)方法,采用結(jié)構(gòu)化的程序流程圖、N-S圖、過(guò)程設(shè)計(jì)語(yǔ)言(PDL,Procedure Design Language)等
26、工具進(jìn)行描述,也可以采用面向?qū)ο蟮脑O(shè)計(jì)方法等等。階段成果:應(yīng)提供“詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明”(或稱(chēng)“模塊開(kāi)發(fā)卷宗”)和單元測(cè)試計(jì)劃等詳細(xì)設(shè)計(jì)文檔。 3實(shí)現(xiàn)編碼和單元測(cè)試。編碼的主要任務(wù)是根據(jù)詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明,用某種選定的程序設(shè)計(jì)語(yǔ)言把詳細(xì)設(shè)計(jì)的結(jié)果轉(zhuǎn)化為機(jī)器可運(yùn)行的源程序模塊,這是一個(gè)編程和調(diào)試程序的過(guò)程。一般來(lái)說(shuō),對(duì)軟件系統(tǒng)所采用的分析方法、設(shè)計(jì)方法、編程方法以及所選用的程序設(shè)計(jì)語(yǔ)言應(yīng)盡可能保持一致。編碼階段應(yīng)注意遵循編程標(biāo)準(zhǔn)、養(yǎng)成良好的編程風(fēng)格,以便編寫(xiě)出正確的便于理解、調(diào)試和維護(hù)的程序模塊。3實(shí)現(xiàn)編碼和單元測(cè)試。單元測(cè)試:每編寫(xiě)出一個(gè)程序模塊的源程序,調(diào)試通過(guò)后,即對(duì)該模塊進(jìn)行測(cè)試,這稱(chēng)為單元測(cè)
27、試。實(shí)現(xiàn)階段的成果:按一定規(guī)則存在盤(pán)上的通過(guò)單元測(cè)試的各功能模塊的集合詳細(xì)的單元測(cè)試報(bào)告等文檔。4組裝測(cè)試組裝測(cè)試:根據(jù)概要設(shè)計(jì)提供的軟件結(jié)構(gòu)、各功能模塊的說(shuō)明和組裝測(cè)試計(jì)劃,把經(jīng)過(guò)單元測(cè)試檢驗(yàn)的模塊按照某種選定的策略逐步進(jìn)行組裝和測(cè)試。主要任務(wù):測(cè)試系統(tǒng)各模塊間的連接是否正確,系統(tǒng)或子系統(tǒng)的正確處理能力、容錯(cuò)能力、輸入/輸出處理是否達(dá)到要求。階段成果: 應(yīng)是滿足概要設(shè)計(jì)要求、可運(yùn)行的軟件系統(tǒng) 和源程序清單; 組裝測(cè)試報(bào)告等文檔。5驗(yàn)收測(cè)試確認(rèn)測(cè)試任務(wù):按照驗(yàn)收測(cè)試計(jì)劃和準(zhǔn)則對(duì)軟件系統(tǒng)進(jìn)行測(cè)試,看其是否達(dá)到了需求規(guī)格說(shuō)明中定義的全部功能和性能等方面的需求。確認(rèn)測(cè)試結(jié)束時(shí),應(yīng)生成驗(yàn)收測(cè)試報(bào)告、項(xiàng)
28、目開(kāi)發(fā)總結(jié)報(bào)告,并向用戶提交源程序清單、最終用戶手冊(cè)、操作手冊(cè)等文檔資料。最后,由專(zhuān)家、用戶負(fù)責(zé)人、軟件開(kāi)發(fā)和管理人員組成的軟件評(píng)審小組要對(duì)軟件驗(yàn)收測(cè)試報(bào)告、測(cè)試結(jié)果和軟件進(jìn)行評(píng)審,通過(guò)后,軟件產(chǎn)品正式通過(guò)驗(yàn)收(即完成了開(kāi)發(fā)合同),可以交付用戶使用了。1.3.3 軟件的使用與維護(hù) 1軟件使用與維護(hù)階段任務(wù): 通過(guò)各種維護(hù)活動(dòng)使軟件系統(tǒng)持久地滿足用戶的需求。每項(xiàng)維護(hù)活動(dòng)實(shí)質(zhì)上都是一次壓縮和簡(jiǎn)化了的軟件定義和軟件開(kāi)發(fā)過(guò)程。都要經(jīng)歷提出維護(hù)要求、分析維護(hù)要求、提出維護(hù)方案、審批維護(hù)方案、確定維護(hù)計(jì)劃、修改軟件設(shè)計(jì)、修改程序、測(cè)試程序、評(píng)審、驗(yàn)收等步驟。1軟件使用與維護(hù)階段應(yīng)當(dāng)指出,軟件在使用的過(guò)程中
29、,應(yīng)及時(shí)收集被發(fā)現(xiàn)的軟件錯(cuò)誤,并定期撰寫(xiě)“軟件問(wèn)題報(bào)告”;而每一項(xiàng)維護(hù)活動(dòng)都應(yīng)該準(zhǔn)確地記錄下來(lái),并作為正式的文檔資料保存。據(jù)統(tǒng)計(jì),軟件維護(hù)人員為了分析和理解原軟件系統(tǒng)所花費(fèi)的工作量約占整個(gè)維護(hù)工作量的60%以上。在軟件開(kāi)發(fā)的過(guò)程中應(yīng)重視對(duì)軟件可維護(hù)性的支持。2 退役圖1-3-2 軟件研制與軟件測(cè)試的層次對(duì)應(yīng)關(guān)系可行性研究編碼與調(diào)試單元測(cè)試組裝測(cè)試驗(yàn)收測(cè)試運(yùn)行與維護(hù)需求分析(驗(yàn)收測(cè)試計(jì)劃)概要設(shè)計(jì)(組裝測(cè)試計(jì)劃)詳細(xì)設(shè)計(jì)(單元測(cè)試計(jì)劃)1.4 軟件開(kāi)發(fā)模型軟件開(kāi)發(fā)模型(又稱(chēng)為軟件生存周期模型) 軟件項(xiàng)目開(kāi)發(fā)和維護(hù)的總體過(guò)程思路的框架。它指出了軟件開(kāi)發(fā)過(guò)程各階段之間的關(guān)系和順序,是軟件開(kāi)發(fā)過(guò)程的概
30、括。它為軟件開(kāi)發(fā)過(guò)程提供原則和方法,并為軟件工程管理提供里程碑和進(jìn)度表。因此,軟件開(kāi)發(fā)模型也是軟件工程的重要內(nèi)容。1.4 軟件開(kāi)發(fā)模型軟件開(kāi)發(fā)模型的幾種類(lèi)型:以軟件需求完全確定為基礎(chǔ)的瀑布模型;在開(kāi)發(fā)初期僅給出基本需求的漸進(jìn)式模型,如原型模型、螺旋模型、噴泉模型等;以形式化開(kāi)發(fā)方法為基礎(chǔ)的變換模型、基于四代技術(shù)的模型;基于知識(shí)的智能模型等等。 在實(shí)際開(kāi)發(fā)時(shí),應(yīng)根據(jù)項(xiàng)目的特點(diǎn)和現(xiàn)有的條件選取合適的模型,也可以把幾種模型組合起來(lái)使用以便充分利用各模型的優(yōu)點(diǎn)。1.4.1 瀑布模型 瀑布模型(waterfall model)是由W. Royce于1970年提出來(lái)的。又稱(chēng)為軟件生存周期模型。瀑布模型嚴(yán)格
31、按照軟件生存周期各個(gè)階段來(lái)進(jìn)行開(kāi)發(fā),上一階段的輸出即是下一階段的輸入,并強(qiáng)調(diào)每一階段的嚴(yán)格性。它規(guī)定了各階段的任務(wù)和應(yīng)提交的成果及文檔,每一階段的任務(wù)完成后,都必須對(duì)其階段性產(chǎn)品(主要是文檔)進(jìn)行評(píng)審,通過(guò)后才能開(kāi)始下一階段的工作。因此,它是一種以文檔作為驅(qū)動(dòng)的模型。圖1-4-1 帶反饋的瀑布模型驗(yàn)收測(cè)試組裝測(cè)試實(shí)現(xiàn)詳細(xì)設(shè)計(jì)概要設(shè)計(jì)需求分析退役可行性研究使用與維護(hù)瀑布模型優(yōu)點(diǎn) 提供了軟件開(kāi)發(fā)的基本框架,有利于大型軟件開(kāi)發(fā)過(guò)程中人員的組織、管理,有利于軟件開(kāi)發(fā)方法和工具的研究與使用,因此,在軟件工程中占有重要的地位。瀑布模型缺點(diǎn)1)在軟件開(kāi)發(fā)的初期階段就要求做出正確、全面、完整的需求分析對(duì)許多應(yīng)
32、用軟件來(lái)說(shuō)是極其困難的。2)在需求分析階段,當(dāng)需求確定后,無(wú)法及時(shí)驗(yàn)證需求是否正確、完整。3)作為整體開(kāi)發(fā)的瀑布模型,由于不支持產(chǎn)品的演化,缺乏靈活性,對(duì)開(kāi)發(fā)過(guò)程中很難發(fā)現(xiàn)的錯(cuò)誤,只有在最終產(chǎn)品運(yùn)行時(shí)才能暴露出來(lái),從而使軟件產(chǎn)品難以維護(hù)。瀑布模型適應(yīng)場(chǎng)合 瀑布模型一般適用于功能、性能明確、完整、無(wú)重大變化的軟件系統(tǒng)的開(kāi)發(fā)。例如操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)等系統(tǒng)軟件的開(kāi)發(fā)。應(yīng)用有一定的局限性。1.4.2 原型模型原型模型(prototyping model)的基本框架是軟件開(kāi)發(fā)人員根據(jù)用戶提出的軟件基本需求快速開(kāi)發(fā)一個(gè)原型,以便向用戶展示軟件系統(tǒng)應(yīng)有的部分或全部功能和性能,在征求用戶對(duì)原型
33、的評(píng)價(jià)意見(jiàn)后,進(jìn)一步使需求精確化、完全化,并據(jù)此改進(jìn)、完善原型,如此迭代,直到軟件開(kāi)發(fā)人員和用戶都確認(rèn)軟件系統(tǒng)的需求并達(dá)成一致的理解為止。軟件需求確定后,便可進(jìn)行設(shè)計(jì),編碼、測(cè)試等以后的各個(gè)開(kāi)發(fā)步驟。需求的采集和細(xì)化快速設(shè)計(jì)建造原型用戶評(píng)價(jià)原型對(duì)原型加工(需求精確化)產(chǎn)品樣品(需求確認(rèn))開(kāi)始停止圖1-4-2 使用原型確定需求的過(guò)程快速原型的開(kāi)發(fā)途徑有三種:1)僅模擬軟件系統(tǒng)的人機(jī)界面和人機(jī)交互方式。2)開(kāi)發(fā)一個(gè)工作模型,實(shí)現(xiàn)軟件系統(tǒng)中重要的或容易產(chǎn)生誤解的功能。3)利用一個(gè)或幾個(gè)類(lèi)似的正在運(yùn)行的軟件向用戶展示軟件需求中的部分或全部功能。 總之,建造原型應(yīng)盡量采用相應(yīng)的軟件工具和環(huán)境,并盡量采用
34、軟件重用技術(shù),在運(yùn)行效率方面可做出讓步,以便盡快提供。同時(shí),原型應(yīng)充分展示軟件系統(tǒng)的可見(jiàn)部分,如人機(jī)界面、數(shù)據(jù)的輸入方式和輸出格式等。原型模型的適應(yīng)場(chǎng)合原型模型比瀑布模型更符合人們認(rèn)識(shí)事物的過(guò)程和規(guī)律,是一種較實(shí)用的開(kāi)發(fā)框架。它適合于那些不能預(yù)先確切定義需求的軟件系統(tǒng)的開(kāi)發(fā),更適合于那些項(xiàng)目組成員(包括分析員、設(shè)計(jì)員、程序員和用戶)不能很好交流或通信有困難的情況。1.4.3 螺旋模型螺旋模型(spiral model)是B. Boehm于1988年提出的。它綜合了瀑布模型和原型模型的優(yōu)點(diǎn),即將兩者結(jié)合,并加入了風(fēng)險(xiǎn)分析機(jī)制。螺旋模型的基本框架如圖1-4-3所示。 生命周期計(jì)劃需求計(jì)劃風(fēng)險(xiǎn)分析原
35、型1原型2原型3可操作的原型建模模擬評(píng)價(jià)操作概念軟件需求需求確認(rèn)開(kāi)發(fā)計(jì)劃組裝測(cè)試計(jì)劃風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析軟件產(chǎn)品設(shè)計(jì)設(shè)計(jì)驗(yàn)證與確認(rèn)詳細(xì)設(shè)計(jì)編碼單元測(cè)試組裝測(cè)試驗(yàn)收測(cè)試實(shí)現(xiàn)成本順時(shí)針為進(jìn)展方向計(jì)劃:明確目標(biāo)、約束條件選擇方案風(fēng)險(xiǎn)分析構(gòu)造原型工程實(shí)現(xiàn)用戶評(píng)價(jià);階段評(píng)審圖1-4-3 螺旋模型驗(yàn)收測(cè)試計(jì)劃需求精化計(jì)劃需求評(píng)價(jià)評(píng)審決策實(shí)現(xiàn)計(jì)劃1.4.3 螺旋模型螺旋模型的每一個(gè)周期都包括計(jì)劃(需求定義)、風(fēng)險(xiǎn)分析、工程實(shí)現(xiàn)和評(píng)審4個(gè)階段。1計(jì)劃(需求定義) 第一周期開(kāi)始利用需求分析技術(shù)理解應(yīng)用領(lǐng)域,獲取初步用戶需求,制定項(xiàng)目開(kāi)發(fā)計(jì)劃(即整個(gè)軟件生命周期計(jì)劃)和需求分析計(jì)劃。經(jīng)過(guò)一個(gè)周期后,根據(jù)用戶和
36、開(kāi)發(fā)人員對(duì)上一周期工作成果評(píng)價(jià)和評(píng)審,修改、完善需求,明確下一周期軟件開(kāi)發(fā)的目標(biāo)、約束條件,并據(jù)此制定新一輪的軟件開(kāi)發(fā)計(jì)劃。1.4.3 螺旋模型2風(fēng)險(xiǎn)分析 根據(jù)本輪制定的開(kāi)發(fā)計(jì)劃,進(jìn)行風(fēng)險(xiǎn)分析,評(píng)估可選方案,并構(gòu)造原型進(jìn)一步分析風(fēng)險(xiǎn),給出消除或減少風(fēng)險(xiǎn)的途徑。此時(shí)根據(jù)風(fēng)險(xiǎn)分析的結(jié)果決策項(xiàng)目是否繼續(xù)。所以,螺旋模型是一個(gè)風(fēng)險(xiǎn)驅(qū)動(dòng)的模型。3工程實(shí)現(xiàn) 利用構(gòu)造的原型進(jìn)行需求建模或進(jìn)行系統(tǒng)模擬,直至實(shí)現(xiàn)軟件系統(tǒng)。1.4.3 螺旋模型4用戶評(píng)價(jià)與階段評(píng)審 將原型提交用戶使用并征求改進(jìn)意見(jiàn)。開(kāi)發(fā)人員應(yīng)在用戶的密切配合下進(jìn)一步完善用戶需求,直到用戶認(rèn)為原型可滿足需求,或?qū)浖a(chǎn)品設(shè)計(jì)進(jìn)行評(píng)價(jià)或確認(rèn)等。 螺旋
37、模型從第一個(gè)周期的計(jì)劃開(kāi)始,一個(gè)周期、一個(gè)周期地不斷迭代,直到整個(gè)軟件系統(tǒng)開(kāi)發(fā)完成。螺旋模型的優(yōu)點(diǎn)支持用戶需求的動(dòng)態(tài)變化。這就要求構(gòu)造的原型的總體結(jié)構(gòu)、算法、程序、測(cè)試方案應(yīng)具有良好的可擴(kuò)充性和可修改性。也支持軟件系統(tǒng)的可維護(hù)性,每次維護(hù)過(guò)程只是沿螺旋模型繼續(xù)多走一兩個(gè)周期。原型可看作形式的可執(zhí)行的需求規(guī)格說(shuō)明,易于為用戶和開(kāi)發(fā)人員共同理解,還可作為繼續(xù)開(kāi)發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的進(jìn)化貫穿整個(gè)軟件生存周期,這將有助于目標(biāo)軟件的適應(yīng)能力。螺旋模型為項(xiàng)目管理人員及時(shí)調(diào)整管理決策提供了方便,進(jìn)而可降低開(kāi)發(fā)風(fēng)險(xiǎn)。螺旋模型的缺點(diǎn)和適應(yīng)場(chǎng)
38、合缺點(diǎn):如果每次迭代的效率不高,致使迭代次數(shù)過(guò)多,將會(huì)增加成本并推遲提交時(shí)間;使用該模型需要有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí),要求開(kāi)發(fā)隊(duì)伍水平較高。適應(yīng)場(chǎng)合:支持需求不明確、特別是大型軟件系統(tǒng)的開(kāi)發(fā),并支持面向規(guī)格說(shuō)明、面向過(guò)程、面向?qū)ο蟮榷喾N軟件開(kāi)發(fā)方法,是一種具有廣闊前景的模型。1.4.4 噴泉模型 噴泉模型是近幾年提出來(lái)的軟件生存周期模型。它是以面向?qū)ο蟮能浖_(kāi)發(fā)方法為基礎(chǔ),以用戶需求為動(dòng)力,以對(duì)象來(lái)驅(qū)動(dòng)的模型。維 護(hù)測(cè) 試實(shí) 現(xiàn)設(shè) 計(jì)分 析演 化圖1-4-4 噴泉模型噴泉模型的特點(diǎn)1軟件系統(tǒng)可維護(hù)性較好;2各階段相互重疊,表明了面向?qū)ο箝_(kāi)發(fā)方法各階段間的交叉和無(wú)縫過(guò)渡; 3整個(gè)模型是
39、一個(gè)迭代的過(guò)程,包括一個(gè)階段內(nèi)部的迭代和跨階段的迭代;4模型具有增量開(kāi)發(fā)特性,即能做到分析一點(diǎn)、設(shè)計(jì)一點(diǎn)、實(shí)現(xiàn)一點(diǎn),測(cè)試一點(diǎn),使相關(guān)功能隨之加入到演化的系統(tǒng)中。5模型是對(duì)象驅(qū)動(dòng)的,對(duì)象是各階段活動(dòng)的主體,也是項(xiàng)目管理的基本內(nèi)容。6該模型很自然地支持軟部件的重用。1.4.5 變換模型變換模型(transformational model)主要用于軟件的形式化開(kāi)發(fā)方法。在軟件需求分析確定以后,便用形式化的規(guī)格說(shuō)明語(yǔ)言將其描述為“形式化軟件規(guī)格說(shuō)明”,然后對(duì)其進(jìn)行一系列自動(dòng)或半自動(dòng)的變換,最終得到軟件系統(tǒng)的目標(biāo)程序。形式化軟件規(guī)格說(shuō)明(M0)模型檢查需求分析形式化軟件設(shè)計(jì)說(shuō)明(M1)(M2)目標(biāo)程序
40、(M )變 換 變 換 變 換圖1-4-5 變換模型1.4.5 變換模型變換模型也應(yīng)引入迭代機(jī)制。即將第一次用變換模型得來(lái)的目標(biāo)程序作為“原型”,讓用戶評(píng)價(jià),以便使用戶需求精確化、完全化,再把精化后的需求作為輸入,第二次用變換模型進(jìn)行變換,等等。以形式化開(kāi)發(fā)方法為基礎(chǔ)的變換模型需要邏輯、代數(shù)等嚴(yán)格的數(shù)學(xué)理論和諸如形式化的需求規(guī)格說(shuō)明語(yǔ)言、程序變換工具、定理證明工具等一整套開(kāi)發(fā)環(huán)境的支持。形式化開(kāi)發(fā)方法提出的比較早,但到目前為止,其在理論和實(shí)踐等方面離工程實(shí)際應(yīng)用還有較長(zhǎng)一段距離。1.4.6 基于四代技術(shù)的模型 1981年R. Ross提出了第四代編程語(yǔ)言(即4GL),它是一種面向問(wèn)題而非面向過(guò)
41、程的語(yǔ)言。四代技術(shù)(4GT)是以第四代語(yǔ)言(4GL)為核心的軟件開(kāi)發(fā)技術(shù)?;谒拇夹g(shù)的模型是指用4GT工具將開(kāi)發(fā)者做出的軟件規(guī)格說(shuō)明自動(dòng)轉(zhuǎn)換成程序代碼。目前,支持4GT的軟件開(kāi)發(fā)工具已經(jīng)有了一些,如屏幕生成器、報(bào)表生成器、數(shù)據(jù)庫(kù)查詢語(yǔ)言、代碼生成系統(tǒng)等。圖1-4-6 基于四代技術(shù)的模型收集需求設(shè)計(jì)策略4GL實(shí)現(xiàn)測(cè)試維護(hù)1.4.7 基于知識(shí)的智能模型它可綜合幾個(gè)模型的特點(diǎn),并與支持分析、設(shè)計(jì)、測(cè)試、維護(hù)等的應(yīng)用領(lǐng)域的基于規(guī)則的專(zhuān)家系統(tǒng)相結(jié)合,構(gòu)成了應(yīng)用領(lǐng)域的開(kāi)發(fā)系統(tǒng)。用戶概念需求分析設(shè)計(jì)編碼測(cè)試維護(hù)分析專(zhuān)家系統(tǒng)設(shè)計(jì)專(zhuān)家系統(tǒng)測(cè)試專(zhuān)家系統(tǒng)維護(hù)專(zhuān)家系統(tǒng)圖1-4-7 基于知識(shí)的智能模型1.5 軟件開(kāi)發(fā)
42、方法、工具及環(huán)境 1.5.1 軟件開(kāi)發(fā)方法軟件開(kāi)發(fā)方法是一種使用早已定義好的技術(shù)集及符號(hào)表示組織軟件生產(chǎn)過(guò)程的方法。工程實(shí)用的軟件開(kāi)發(fā)方法是達(dá)到軟件工程目標(biāo)和克服軟件危機(jī)的主要途徑。其中,具有代表性的有結(jié)構(gòu)化方法(包括面向數(shù)據(jù)流的開(kāi)發(fā)方法、面向數(shù)據(jù)的開(kāi)發(fā)方法等)、面向?qū)ο蟮拈_(kāi)發(fā)方法、形式化開(kāi)發(fā)方法、維也納開(kāi)發(fā)方法(VDM,Vienna Development Method)、適于實(shí)時(shí)事務(wù)處理系統(tǒng)的有限狀態(tài)機(jī)方法(FSMM,F(xiàn)inite State Machine Method)、適于并發(fā)軟件系統(tǒng)的Petri網(wǎng)方法等等。1.5.2 軟件開(kāi)發(fā)工具與環(huán)境軟件開(kāi)發(fā)的工具軟件:支持軟件項(xiàng)目的開(kāi)發(fā)、管理、
43、維護(hù)活動(dòng)的軟件 例如,項(xiàng)目管理工具、需求分析工具、設(shè)計(jì)工具、編碼工具、測(cè)試工具、維護(hù)工具等等。隨著軟件開(kāi)發(fā)工具數(shù)量的不斷增加,為了便于使用和管理,就將各種工具簡(jiǎn)單地組合起來(lái)構(gòu)成“工具箱”。人們將工具按照統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)、標(biāo)準(zhǔn)的程序界面集成,從而構(gòu)成了完整的軟件開(kāi)發(fā)環(huán)境。 這種集成的軟件開(kāi)發(fā)環(huán)境能夠有效地支持軟件生存周期所有階段的活動(dòng),而且不僅支持技術(shù)工作,還支持各種管理工作,從而可高效、高質(zhì)量地進(jìn)行軟件開(kāi)發(fā)與維護(hù)。1.5.3 計(jì)算機(jī)輔助軟件工程在軟件工程活動(dòng)中,人們按照軟件工程的原則和方法,利用計(jì)算機(jī)及其集成的軟件開(kāi)發(fā)環(huán)境,輔助軟件項(xiàng)目的開(kāi)發(fā)、維護(hù)及管理的過(guò)程,稱(chēng)為計(jì)算機(jī)輔助軟件工程(即CASE
44、,Computer-Aided Software Engineering)。CASE工具和環(huán)境的核心是軟件工程信息庫(kù)。這些工具和環(huán)境應(yīng)遵循統(tǒng)一的標(biāo)準(zhǔn),在操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)的支持下工作,以便使開(kāi)發(fā)者們方便地相互通信并協(xié)同工作。CASE工具按功能可劃分為九大類(lèi)支撐類(lèi)工具(如操作系統(tǒng)、數(shù)據(jù)庫(kù)管理工具、質(zhì)量保證工具、軟件配置管理工具、文檔工具等);事務(wù)系統(tǒng)規(guī)劃類(lèi)(如事務(wù)系統(tǒng)規(guī)劃工具);項(xiàng)目管理類(lèi)(如項(xiàng)目計(jì)劃工具、需求追蹤工具、度量和管理工具等);分析和設(shè)計(jì)類(lèi)(如結(jié)構(gòu)化分析/結(jié)構(gòu)化設(shè)計(jì)即SA/SD工具、界面設(shè)計(jì)工具、原型/模擬即PRO/SIM工具等);程序設(shè)計(jì)與編碼類(lèi)(如各種編輯器、調(diào)試器、編譯器、
45、四代語(yǔ)言、面向?qū)ο笳Z(yǔ)言工具等);CASE工具按功能可劃分為九大類(lèi)原型建造類(lèi)(如航空等某些領(lǐng)域的原型工具);測(cè)試類(lèi)(測(cè)試數(shù)據(jù)獲取工具、程序靜態(tài)或動(dòng)態(tài)測(cè)量工具、測(cè)試管理工具等);維護(hù)類(lèi)(如從程序到規(guī)格說(shuō)明的逆向工程工具、代碼的重構(gòu)和分析工具等);框架類(lèi)(指支持?jǐn)?shù)據(jù)庫(kù)管理、配置管理和CASE工具集成的工具等)。CASE工具和環(huán)境的進(jìn)一步開(kāi)發(fā)和使用,已經(jīng)成為軟件工程的重要研究課題。習(xí)題思考題 1.3 什么是軟件工程?構(gòu)成軟件工程的要素是什么? 1.4 軟件工程的7條原理都是什么? 1.5 軟件工程的目標(biāo)是什么? 1.7 軟件工程的7條原則是什么?說(shuō)明這些原則的作 用。 1.8 軟件生存周期由哪幾個(gè)過(guò)程
46、組成?每個(gè)過(guò)程分別 包括哪幾個(gè)階段? 1.13 軟件開(kāi)發(fā)模型、軟件開(kāi)發(fā)方法、集成的CASE工 具與環(huán)境在軟件工程中各有什么作用?課程名稱(chēng):軟件工程 第3講班 級(jí):日 期:教 室:教學(xué)題目:第2章 軟件項(xiàng)目管理 2.1 軟件度量 2.2軟件項(xiàng)目的估算 2.2.1軟件項(xiàng)目估算方法教學(xué)目的:了解軟件度量的基本概念,掌握面向規(guī)模和 面向功能點(diǎn)度量方法。了解項(xiàng)目估算方法。教學(xué)重點(diǎn):面向規(guī)模和面向功能點(diǎn)的度量方法。教學(xué)難點(diǎn):面向功能點(diǎn)的度量方法教 具:多媒體教室、電子教案作 業(yè):第2章軟件項(xiàng)目管理軟件項(xiàng)目管理必須從項(xiàng)目的開(kāi)頭介入,并貫穿于整個(gè)軟件生存周期的全過(guò)程。 軟件項(xiàng)目管理的范圍主要集中于3個(gè)P上,即
47、:People(人員)、Problem(問(wèn)題)和Process(過(guò)程)。軟件項(xiàng)目管理的主要任務(wù)是: 根據(jù)選定的軟件開(kāi)發(fā)過(guò)程框架(即軟件開(kāi)發(fā)模型)和對(duì)其估算的結(jié)果制定軟件項(xiàng)目實(shí)施計(jì)劃;再根據(jù)計(jì)劃對(duì)人員進(jìn)行組織、分工;按照計(jì)劃的進(jìn)度,以及成本管理、風(fēng)險(xiǎn)管理、質(zhì)量管理的要求,控制并管理軟件開(kāi)發(fā)和維護(hù)的活動(dòng),最終以最小的代價(jià)完成軟件項(xiàng)目規(guī)定的全部任務(wù)。第2章軟件項(xiàng)目管理軟件項(xiàng)目的成本管理、軟件質(zhì)量管理和軟件配置管理有一定的特殊性和獨(dú)立性,可單獨(dú)立項(xiàng)。其任務(wù)分別是:成本管理估算軟件項(xiàng)目的成本,作為立項(xiàng)和簽合同的依據(jù)之一,并在軟件開(kāi)發(fā)過(guò)程中按計(jì)劃管理經(jīng)費(fèi)的使用;質(zhì)量管理制定軟件質(zhì)量保證計(jì)劃,按照質(zhì)量評(píng)價(jià)體
48、系控制軟件質(zhì)量要素,對(duì)階段性的軟件產(chǎn)品進(jìn)行評(píng)審,對(duì)最終軟件產(chǎn)品進(jìn)行確認(rèn),確保軟件質(zhì)量;配置管理制定配置管理計(jì)劃,對(duì)程序、數(shù)據(jù)、文檔的各種版本進(jìn)行管理,確保軟件的完整性和一致性。第2章軟件項(xiàng)目管理在制定有效的項(xiàng)目實(shí)施計(jì)劃的過(guò)程中,首先要對(duì)項(xiàng)目的工作量、完成期限等等參考量進(jìn)行估算。估算的結(jié)果將成為項(xiàng)目計(jì)劃其他活動(dòng)的基礎(chǔ),同時(shí),為了對(duì)軟件項(xiàng)目進(jìn)行科學(xué)、有效的管理,就必須對(duì)軟件開(kāi)發(fā)過(guò)程的有關(guān)特征進(jìn)行度量,度量的結(jié)果用于軟件開(kāi)發(fā)過(guò)程的管理與監(jiān)控。本章主要介紹軟件度量的概念,軟件的規(guī)模度量,軟件項(xiàng)目的估算,軟件的質(zhì)量度量、復(fù)雜性度量、可靠性度量、風(fēng)險(xiǎn)的分析與度量以及軟件項(xiàng)目管理過(guò)程與步驟等等。第2章軟件項(xiàng)
49、目管理 2.1 軟件度量 2.2 軟件項(xiàng)目估算 2.3 軟件質(zhì)量度量 2.4 軟件復(fù)雜性度量 2.5 軟件可靠性度量 2.6 軟件開(kāi)發(fā)過(guò)程的管理 習(xí)題思考題2.1 軟件度量對(duì)軟件工程項(xiàng)目的規(guī)模、成本、產(chǎn)品質(zhì)量等屬性進(jìn)行定量的描述,可以幫助項(xiàng)目管理人員和開(kāi)發(fā)者制定有效的項(xiàng)目計(jì)劃,監(jiān)控項(xiàng)目的風(fēng)險(xiǎn)、進(jìn)度和階段產(chǎn)品的質(zhì)量,并為調(diào)整過(guò)程中活動(dòng)和做出重要決策提供可靠的依據(jù)。下面介紹軟件度量的基本概念,并介紹軟件的規(guī)模度量和功能度量。2.1.1 軟件度量的基本概念1測(cè)量、度量、估算和指標(biāo) 軟件工程項(xiàng)目的定量描述涉及測(cè)量、度量、估算和指標(biāo)等一些基本概念。1)測(cè)量(measure):對(duì)產(chǎn)品或過(guò)程的某個(gè)屬性的范圍
50、、數(shù)量、維度、容量或大小提供一個(gè)定量的指示。2)度量(metric):對(duì)系統(tǒng)、部件或過(guò)程的某一特性所具有的程度進(jìn)行的量化測(cè)量。如軟件質(zhì)量度量等。3)估算(estimation):對(duì)軟件產(chǎn)品、過(guò)程、資源等使用歷史資料或經(jīng)驗(yàn)公式等進(jìn)行預(yù)測(cè)。如工作量、成本、完成期限等。估算一般用于立項(xiàng)、簽訂合同、制定工作計(jì)劃等。4)指標(biāo)(guideline)指標(biāo)是一個(gè)度量或度量的組合,它可對(duì)軟件產(chǎn) 品、過(guò)程或資源提供更深入的理解。 如有4個(gè)小組共同完成一個(gè)軟件項(xiàng)目,每一個(gè)小組都必須采用自行選擇的評(píng)審類(lèi)型進(jìn)行技術(shù)評(píng)審。管理者檢查“每小時(shí)每人所發(fā)現(xiàn)的錯(cuò)誤數(shù)”這一度量結(jié)果時(shí)發(fā)現(xiàn):采用正式技術(shù)評(píng)審方法的兩個(gè)小組的該度量值要
51、比另外兩個(gè)小組高出40%。假設(shè)4個(gè)小組的其他參數(shù)都相同,這就給管理者提供了一個(gè)指標(biāo):正式技術(shù)評(píng)審方法比其他技術(shù)評(píng)審方法更有效率。于是,管理者可決定建議所有小組都采用更加正式的技術(shù)評(píng)審方法。2軟件項(xiàng)目管理的對(duì)象及其屬性軟件項(xiàng)目管理的對(duì)象主要包括產(chǎn)品、過(guò)程和資源等。產(chǎn)品(product)是指軟件開(kāi)發(fā)過(guò)程得到的文檔和程序,如:需求規(guī)格說(shuō)明、設(shè)計(jì)規(guī)格說(shuō)明、源代碼、測(cè)試報(bào)告等;過(guò)程(process)是指與軟件項(xiàng)目有關(guān)的活動(dòng),如軟件項(xiàng)目計(jì)劃、開(kāi)發(fā)活動(dòng)、維護(hù)活動(dòng)、管理活動(dòng)等;資源(resource)是指進(jìn)行軟件項(xiàng)目所需要的各種支持,如人力、經(jīng)費(fèi)、方法、工具、軟硬件環(huán)境等。 要對(duì)軟件項(xiàng)目管理的對(duì)象進(jìn)行有效的管
52、理與控制,就必須對(duì)這些對(duì)象的屬性進(jìn)行測(cè)量、度量與估算。一般來(lái)說(shuō),產(chǎn)品、過(guò)程、資源等對(duì)象都具有內(nèi)部屬性和外部屬性。對(duì)象的屬性內(nèi)部屬性是指對(duì)象本身的屬性,如軟件產(chǎn)品的代碼長(zhǎng)度、模塊化的程度、復(fù)雜性等。對(duì)象的外部屬性體現(xiàn)了對(duì)象與環(huán)境的關(guān)系,如軟件的可靠性、可維護(hù)性、可移植性、成本、人員的生產(chǎn)率等。對(duì)象的部分屬性如表2-1所示。表2-1 軟件工程的產(chǎn)品、過(guò)程、資源的屬性產(chǎn) 品 過(guò) 程 資 源 內(nèi)部屬性程序代碼行長(zhǎng)度; 程序功能;模塊化;控制流結(jié)構(gòu);重用性;模塊耦合度與內(nèi)聚度。工作量;計(jì)劃及進(jìn)度;事件。人員;方法;工具;環(huán)境;經(jīng)驗(yàn)。外部屬性軟件的可靠性;軟件的可理解性;軟件的有效性;軟件的可用性;軟件的
53、可維護(hù)性;軟件的可移植性。成本;可控制性;可觀察性;穩(wěn)定性。成本;生產(chǎn)率;時(shí)間。對(duì)象的屬性項(xiàng)目管理員和用戶都十分關(guān)心產(chǎn)品、過(guò)程、資源的外部屬性,于是可將外部屬性看成是面向管理員和用戶的屬性。但在軟件開(kāi)發(fā)的過(guò)程中,軟件的外部屬性一般是很難度量和控制的。這些外部屬性是由軟件的內(nèi)部屬性所決定的,因此,可以通過(guò)研究?jī)?nèi)部屬性與外部屬性之間的關(guān)系來(lái)解決外部屬性的度量問(wèn)題,進(jìn)而逐步建立起了軟件工程度量系統(tǒng)。3軟件度量的分類(lèi)可分為直接度量和間接度量?jī)深?lèi): 1)直接度量。即對(duì)不依賴于其他屬性的簡(jiǎn)單屬性的測(cè)量。如軟件的模塊數(shù)、程序的代碼行數(shù)、操作符的個(gè)數(shù),工作量、成本等。 2)間接度量。即對(duì)涉及若干個(gè)其他屬性的軟
54、件要素、準(zhǔn)則或?qū)傩缘亩攘?。因?yàn)樗鼈儽仨毻ㄟ^(guò)建立一定的度量方法或模型才能間接推斷而獲得。如軟件的功能性、復(fù)雜性、可靠性、可維護(hù)性等等。 軟件度量系統(tǒng)還可進(jìn)一步劃分為兩個(gè)側(cè)面。它們之間的關(guān)系如圖2-1-1所示。 圖2-1-1 兩側(cè)面間關(guān)系面向規(guī)模的度量面向功能的度量面向人的度量生產(chǎn)率度量質(zhì)量度量技術(shù)度量2.1.2 面向規(guī)模的度量面向規(guī)模的度量是以軟件的代碼行(LOC,Line of Code)數(shù)為基礎(chǔ)的直接度量。一般的軟件開(kāi)發(fā)組織對(duì)開(kāi)發(fā)過(guò)的每個(gè)軟件項(xiàng)目都有如代碼行、工作量、成本、錯(cuò)誤、人數(shù)、文檔頁(yè)數(shù)等的統(tǒng)計(jì)記錄。利用代碼行數(shù)可以度量軟件規(guī)模、生產(chǎn)率、平均成本、出錯(cuò)率、文檔率等參考量。設(shè):L表示軟件
55、的代碼行數(shù),單位為KLOC(千行代碼)或LOC;E表示開(kāi)發(fā)軟件所需工作量,單位為人月(PM)或人年(PY);S表示軟件成本,單位為美元或元;N表示錯(cuò)誤個(gè)數(shù);Pd表示軟件文檔頁(yè)數(shù);M表示開(kāi)發(fā)所用的人數(shù)。則有:1軟件開(kāi)發(fā)的生產(chǎn)率P(即平均每人月開(kāi)發(fā)的代碼行數(shù),以LOC/PM為單位)為: P = L / E (2-1) 2開(kāi)發(fā)每行代碼的平均成本C(以美元/LOC或元/LOC為單位)為: C = S / L (2-2) 3代碼出錯(cuò)率EQR(即每千行代碼的平均錯(cuò)誤數(shù),以個(gè)/KLOC為單位)為: EQR = N / L (2-3) 4軟件的文檔率D(即平均每千行代碼的文檔頁(yè)數(shù),以頁(yè)/KLOC為單位)為:
56、D = Pd / L (2-4)【例2.1】 已知有一個(gè)國(guó)外典型的軟件項(xiàng)目的記錄,開(kāi)發(fā)人員M=6人,其代碼行數(shù)=20.2KLOC,工作量E=43PM,成本S=314000美元,錯(cuò)誤數(shù)N=64,文檔頁(yè)數(shù)Pd=1050頁(yè)。試計(jì)算開(kāi)發(fā)該軟件項(xiàng)目的生產(chǎn)率P、平均成本C、代碼出錯(cuò)率EQR和文檔率D。解:根據(jù)給出的已知數(shù)據(jù),可得: P = L / E =20.2 KLOC /43 PM = 0.47 KLOC / PM = 470 LOC / PM C = S / L = 314000美元 / 20.2 KLOC = 15.54 美元 / LOC EQR = N / L = 64個(gè) / 20.2KLOC
57、= 3.17 個(gè) / KLOC D = Pd / L = 1050 頁(yè) / 20.2 KLOC = 51.98 頁(yè) / KLOC基于代碼行面向規(guī)模的度量方法的優(yōu)缺點(diǎn)、適用場(chǎng)合優(yōu)點(diǎn):簡(jiǎn)單、直接。缺點(diǎn):如它依賴于程序設(shè)計(jì)語(yǔ)言的功能和表達(dá) 等特征、在開(kāi)發(fā)初期很難準(zhǔn)確估算出 代碼行數(shù)、對(duì)設(shè)計(jì)水平高的軟件項(xiàng)目 產(chǎn)生不利影響。適用場(chǎng)合:適合于過(guò)程式程序設(shè)計(jì)語(yǔ)言和事后 度量。2.1.3 面向功能的度量1簡(jiǎn)單功能點(diǎn)度量 1979年,Albrecht首先提出了功能點(diǎn)度量方法。這是一種面向功能的間接度量方法,即從軟件定義的基本功能出發(fā),來(lái)估算軟件系統(tǒng)的規(guī)模。因此,該方法可以在軟件開(kāi)發(fā)項(xiàng)目的初期,在軟件定義過(guò)程中即
58、可預(yù)測(cè)待開(kāi)發(fā)軟件的規(guī)模。1簡(jiǎn)單功能點(diǎn)度量功能點(diǎn)FP的度量公式如下:FP = CTTCF = CT 0.65 + 0.01F i (2-5)其中: CT基本功能點(diǎn)。 CT值按表2-2來(lái)計(jì)算,它的值為5個(gè)參數(shù)加 權(quán)值的總和。14 i=1表2-2 簡(jiǎn)單功能點(diǎn)度量的基本功能點(diǎn)的計(jì)算測(cè)量參數(shù) 值 加權(quán)因子 加權(quán)值 簡(jiǎn)單 一般 復(fù)雜用戶輸入數(shù) 3 4 6 =用戶輸出數(shù) 4 5 7 =用戶查詢數(shù) 3 4 6 =文件數(shù) 7 10 15 =外部接口數(shù) 5 7 10 = 基本功能點(diǎn)CT 表2-2中的5個(gè)參數(shù)的含義1)用戶輸入數(shù):用戶為軟件系統(tǒng)提供的輸入?yún)?shù)的個(gè) 數(shù)(不包括查詢);2)用戶輸出數(shù):軟件為用戶提供的輸
59、出參數(shù)(報(bào)告、 屏幕幀、錯(cuò)誤信息等)的個(gè)數(shù);3)用戶查詢數(shù):一次聯(lián)機(jī)輸入導(dǎo)致軟件以聯(lián)機(jī)輸出方 式實(shí)時(shí)產(chǎn)生一個(gè)響應(yīng)的個(gè)數(shù);4)文件數(shù): 邏輯主文件的個(gè)數(shù);5)外部接口數(shù):機(jī)器可讀的接口(如磁盤(pán)或磁帶上的 數(shù)據(jù)文件等)的個(gè)數(shù)。1簡(jiǎn)單功能點(diǎn)度量在FP度量公式中:TCF技術(shù)復(fù)雜性調(diào)節(jié)因子。0.65和0.01經(jīng)驗(yàn)數(shù)據(jù)。Fi(i=1,2,14)復(fù)雜性調(diào)節(jié)值。Fi所代表的因素如表2-3所示,每個(gè)Fi可根據(jù)實(shí)際情況取0、1、2、3、4、5中的一個(gè)值。其中:0沒(méi)有影響、1偶然的、2適中、 3普通、4重要、5極重要的影響。TCF取值范圍:0.65 1.35。表2-3 F i 取值表 i因素 Fii因素Fi1234
60、567需要可靠的備份和恢復(fù)嗎?需要數(shù)據(jù)通信嗎?有分布式處理的功能嗎?性能是關(guān)鍵嗎?在現(xiàn)存實(shí)用的操作環(huán)境下運(yùn)行嗎?需要聯(lián)機(jī)數(shù)據(jù)入口嗎?聯(lián)機(jī)數(shù)據(jù)入口需要用輸入信息構(gòu)造復(fù)雜的界面或操作嗎? 891011121314 需要聯(lián)機(jī)更新主文件嗎?輸入、輸出、文件、查詢復(fù)雜嗎??jī)?nèi)部處理過(guò)程復(fù)雜嗎?要求代碼設(shè)計(jì)可重用嗎?設(shè)計(jì)中包含轉(zhuǎn)換和安裝嗎?系統(tǒng)設(shè)計(jì)支持不同組織的多次安裝嗎?系統(tǒng)設(shè)計(jì)有利于用戶的修改、使用嗎? 2功能點(diǎn)度量簡(jiǎn)單功能點(diǎn)度量方法沒(méi)有直接考慮軟件本身的算法的復(fù)雜性問(wèn)題。所以它僅適用于度量算法簡(jiǎn)單的事務(wù)處理等系統(tǒng)。1986年Jones對(duì)簡(jiǎn)單功能點(diǎn)度量進(jìn)行了推廣,在計(jì)算軟件系統(tǒng)的基本功能點(diǎn)CT時(shí),引入了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 2492-2017 固結(jié)磨具 交付砂輪允許的不平衡量 測(cè)量》專(zhuān)題研究報(bào)告
- 《GBT 21792-2008閃燃和非閃燃測(cè)定 閉杯平衡法》專(zhuān)題研究報(bào)告
- 《GBT 15940-2008 同步數(shù)字體系信號(hào)的基本復(fù)用結(jié)構(gòu)》專(zhuān)題研究報(bào)告
- 《GBT 2423.1-2008電工電子產(chǎn)品環(huán)境試驗(yàn) 第2部分:試驗(yàn)方法 試驗(yàn)A:低溫》專(zhuān)題研究報(bào)告
- 道路安全員培訓(xùn)總結(jié)課件
- 2026年魯教版八年級(jí)語(yǔ)文上冊(cè)期末考試題庫(kù)附參考答案
- 道路交通安全宣傳課件
- 重陽(yáng)節(jié)活動(dòng)總結(jié)15篇
- 道岔鉗工測(cè)量知識(shí)課件
- 道口員培訓(xùn)課件
- JB∕T 13026-2017 熱處理用油基淬火介質(zhì)
- 人教版高一化學(xué)方程式大全
- DB64 1996-2024 燃煤電廠大氣污染物排放標(biāo)準(zhǔn)
- 鄰近鐵路營(yíng)業(yè)線施工安全監(jiān)測(cè)技術(shù)規(guī)程 (TB 10314-2021)
- 樣板加油站打造方案
- 浙江省杭州市西湖區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末科學(xué)試卷
- 生物化學(xué)第30章蛋白質(zhì)降解和氨基酸的分解代謝
- YY/T 1269-2015血液透析和相關(guān)治療用水處理設(shè)備常規(guī)控制要求
- 保密資格標(biāo)準(zhǔn)認(rèn)定辦法試題2017-含答案
- “雙減”背景下小學(xué)數(shù)學(xué)減負(fù)提質(zhì)的策略優(yōu)秀獲獎(jiǎng)科研論文
- 國(guó)家開(kāi)放大學(xué)電大《外國(guó)文學(xué)專(zhuān)題(本)》期末題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論