軟件維護(hù)與軟件工程管理_第1頁(yè)
軟件維護(hù)與軟件工程管理_第2頁(yè)
軟件維護(hù)與軟件工程管理_第3頁(yè)
軟件維護(hù)與軟件工程管理_第4頁(yè)
軟件維護(hù)與軟件工程管理_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第12章軟件維護(hù)與軟件工程管理12.1軟件維護(hù)

軟件維護(hù)是軟件產(chǎn)品生命周期的最后一個(gè)階段。在產(chǎn)品交付并且投入使用之后,為了解決在使用過(guò)程中不斷發(fā)現(xiàn)的各種問(wèn)題,保證系統(tǒng)正常運(yùn)行,同時(shí)使系統(tǒng)功能隨著用戶(hù)需求的更新而不斷升級(jí),軟件維護(hù)的工作是非常必要的。概括地說(shuō),軟件維護(hù)就是指在軟件產(chǎn)品交付給用戶(hù)之后,為了改正軟件測(cè)試階段未發(fā)現(xiàn)的缺陷,改進(jìn)軟件產(chǎn)品的性能,補(bǔ)充軟件產(chǎn)品的新功能等,所進(jìn)行的修改軟件的過(guò)程。進(jìn)行軟件維護(hù)通常需要軟件維護(hù)人員與用戶(hù)建立一種工作關(guān)系,使軟件維護(hù)人員能夠充分了解用戶(hù)的需要,及時(shí)解決系統(tǒng)中存在的問(wèn)題。通常,軟件維護(hù)是軟件生命周期中延續(xù)時(shí)間最長(zhǎng)、工作量最大的階段。據(jù)統(tǒng)計(jì),軟件開(kāi)發(fā)機(jī)構(gòu)60%以上的精力都用在維護(hù)已有的軟件產(chǎn)品上了。對(duì)于大型的軟件系統(tǒng),一般開(kāi)發(fā)周期是1~3年,而維護(hù)周期會(huì)高達(dá)5~10年,維護(hù)費(fèi)用甚至?xí)哌_(dá)開(kāi)發(fā)費(fèi)用的4~5倍。軟件維護(hù)不僅工作量大、任務(wù)重,而且如果維護(hù)的不恰當(dāng),還會(huì)產(chǎn)生副作用,引入新的軟件缺陷。因此,進(jìn)行維護(hù)工作要相當(dāng)謹(jǐn)慎。12.1軟件維護(hù)

12.1.1軟件維護(hù)的過(guò)程典型的軟件維護(hù)的過(guò)程可以概括為:建立維護(hù)機(jī)構(gòu),用戶(hù)提出維護(hù)申請(qǐng)并提交維護(hù)申請(qǐng)報(bào)告,維護(hù)人員確認(rèn)維護(hù)類(lèi)型并實(shí)施相應(yīng)的維護(hù)工作,整理維護(hù)記錄并對(duì)維護(hù)工作進(jìn)行評(píng)審,對(duì)維護(hù)工作進(jìn)行評(píng)價(jià)。12.1軟件維護(hù)

12.1.2軟件維護(hù)的分類(lèi)軟件維護(hù)的分類(lèi)12.1軟件維護(hù)

12.1.3軟件的可維護(hù)性軟件的可維護(hù)性是用來(lái)衡量對(duì)軟件產(chǎn)品進(jìn)行維護(hù)的難易程度的標(biāo)準(zhǔn),它是軟件質(zhì)量的主要特征之一。軟件產(chǎn)品的可維護(hù)性越高,糾正并修改其錯(cuò)誤或缺陷,對(duì)其功能進(jìn)行擴(kuò)充或完善時(shí),消耗的資源越少,工作越容易。開(kāi)發(fā)可維護(hù)性高的軟件產(chǎn)品是軟件開(kāi)發(fā)的一個(gè)重要目標(biāo)。影響軟件可維護(hù)性的因素有很多,如可理解性、可測(cè)試性、可修改性等。(1)可理解性是指人們通過(guò)閱讀軟件產(chǎn)品的源代碼和文檔,來(lái)了解軟件的系統(tǒng)結(jié)構(gòu)、功能、接口和內(nèi)部過(guò)程的難易程度。可理解性高的軟件產(chǎn)品應(yīng)該具備一致的編程風(fēng)格,準(zhǔn)確、完整的文檔,有意義的變量名稱(chēng)和模塊名稱(chēng),清晰的源程序語(yǔ)句等特點(diǎn)。(2)可測(cè)試性是指診斷和測(cè)試軟件缺陷的難易程度。程序的邏輯復(fù)雜度越低,就越容易測(cè)試。透徹地理解源程序有益于測(cè)試人員設(shè)計(jì)出合理的測(cè)試用例,從而有效地對(duì)程序進(jìn)行檢測(cè)。(3)可修改性是指在定位了軟件缺陷以后,對(duì)程序進(jìn)行修改的難易程度。一般來(lái)說(shuō),具有較好的結(jié)構(gòu)且編碼風(fēng)格好的代碼比較容易修改。5.1

生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)生產(chǎn)是指廠商對(duì)各種生產(chǎn)要素加以組合制成產(chǎn)品的行為。生產(chǎn)要素就是生產(chǎn)過(guò)程中所使用的各種資源,主要包括勞動(dòng)、資本、土地和企業(yè)家才能。5.1生產(chǎn)函數(shù)與軟件生產(chǎn)函數(shù)勞動(dòng)是指勞動(dòng)者所提供的各種服務(wù)資本是指生產(chǎn)過(guò)程中使用的資金土地是指在生產(chǎn)過(guò)程中所使用的自然資源企業(yè)家才能是指企業(yè)家對(duì)整個(gè)生產(chǎn)過(guò)程的管理和組織工作

企業(yè)家主要根據(jù)市場(chǎng)預(yù)測(cè),合理地配置各生產(chǎn)要素來(lái)從事生產(chǎn)經(jīng)營(yíng)活動(dòng),以追求企業(yè)的利潤(rùn)最大化。5.1.1

生產(chǎn)函數(shù)

生產(chǎn)函數(shù)是指一定時(shí)期內(nèi)生產(chǎn)要素的數(shù)量與某種組合與其所能產(chǎn)出的最大產(chǎn)量之間存在的函數(shù)關(guān)系。生產(chǎn)函數(shù)的表達(dá)式如式5.1所示。式5.1中的y表示總產(chǎn)出量,L,K,N,E分別表示投入到生產(chǎn)中的勞動(dòng)、資本、土地、企業(yè)家才能的數(shù)量。1.生產(chǎn)函數(shù)的定義5.1.1生產(chǎn)函數(shù)

考慮到土地的固定性,變化較小,企業(yè)家才能難以估算故生產(chǎn)函數(shù)通常被簡(jiǎn)化為式5.2。式5.2表明,在已知?jiǎng)趧?dòng)和資本數(shù)量的組合情況時(shí),可以推算出產(chǎn)品的最大產(chǎn)量。1.生產(chǎn)函數(shù)的定義5.1.1生產(chǎn)函數(shù)2.生產(chǎn)函數(shù)的特征特征①資本與勞動(dòng)力的邊際產(chǎn)出總是為正值,勞動(dòng)力(或者資本)投入量不變的情況下,資本(或者勞動(dòng)力)的增加將引起產(chǎn)出的增加②邊際產(chǎn)量遞減特性。當(dāng)其他生產(chǎn)要素固定不變時(shí),隨著某一要素投入量的增加,其邊際產(chǎn)量將逐漸減少③生產(chǎn)函數(shù)具有非負(fù)性,總產(chǎn)出必須是正值,且總產(chǎn)量是生產(chǎn)要素組合的結(jié)果,單一要素的投入是不能獲得產(chǎn)出的5.1.1生產(chǎn)函數(shù)3.規(guī)模報(bào)酬規(guī)模報(bào)酬又稱(chēng)為規(guī)模經(jīng)濟(jì),主要研究所有要素都同比例增加時(shí),產(chǎn)量時(shí)如何發(fā)生變化的。

通常在規(guī)模較小時(shí),增加投入可以促進(jìn)規(guī)模報(bào)酬遞增,而當(dāng)規(guī)模達(dá)到一定程度時(shí),則會(huì)出現(xiàn)規(guī)模報(bào)酬遞減的情況。5.1.1

生產(chǎn)函數(shù)

3.規(guī)模報(bào)酬5.1.1

生產(chǎn)函數(shù)分別對(duì)公示5.3中的L與K求偏導(dǎo)數(shù)則有:式5.4中,

表示勞動(dòng)力對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,勞動(dòng)力增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比;

表示資本對(duì)產(chǎn)出的彈性系數(shù),表示在其他條件不變的情況下,資本增加1%會(huì)使產(chǎn)出發(fā)生變化的百分比。3.規(guī)模報(bào)酬5.1.1

生產(chǎn)函數(shù)

5.1.2軟件生產(chǎn)函數(shù)

5.1.2軟件生產(chǎn)函數(shù)

5.1.2軟件生產(chǎn)函數(shù)

軟件生產(chǎn)率是指軟件開(kāi)發(fā)的效率,是衡量軟件開(kāi)發(fā)水平的一個(gè)重要因素。影響軟件生產(chǎn)率的因素眾多,主要有技術(shù)因素、管理因素以及文化因素。5.1.2軟件生產(chǎn)函數(shù)強(qiáng)調(diào)對(duì)企業(yè)研發(fā)人員個(gè)人職業(yè)能力的綜合評(píng)估。為了提升個(gè)人對(duì)軟件企業(yè)的貢獻(xiàn),有必要從專(zhuān)業(yè)、技能、經(jīng)驗(yàn)、學(xué)歷以及年齡等多方面進(jìn)行考量。軟件技術(shù)領(lǐng)域最好根據(jù)研發(fā)人員所擅長(zhǎng)的技術(shù)能力來(lái)劃分不同的專(zhuān)業(yè)技術(shù)組。培養(yǎng)研發(fā)人員對(duì)新技術(shù)的學(xué)習(xí)掌握,并創(chuàng)新應(yīng)用。提高軟件生產(chǎn)率的主要舉措有:技術(shù)方面5.1.2軟件生產(chǎn)函數(shù)建立良好的人才激勵(lì)機(jī)制,通過(guò)物質(zhì)、精神獎(jiǎng)勵(lì)以及職務(wù)晉升制度提高研發(fā)人員的工作熱情。建立科學(xué)、合理的研發(fā)人員梯隊(duì)制度,明確劃分管理與技術(shù)領(lǐng)域人才。依據(jù)軟件企業(yè)所處的市場(chǎng)環(huán)境及企業(yè)自身發(fā)展的要求適時(shí)變革管理。用以應(yīng)對(duì)不斷變化的IT市場(chǎng),進(jìn)而增強(qiáng)軟件企業(yè)的核心競(jìng)爭(zhēng)力。提高軟件生產(chǎn)率的主要舉措有:管理方面5.1.2軟件生產(chǎn)函數(shù)建立良好的企業(yè)學(xué)習(xí)氛圍。通過(guò)研發(fā)人員個(gè)人知識(shí)的學(xué)習(xí)、交流及其共享來(lái)形成群體效應(yīng),提升整個(gè)企業(yè)的知識(shí)資源。注重軟件工程項(xiàng)目團(tuán)隊(duì)建設(shè),加強(qiáng)團(tuán)隊(duì)合作精神,提高團(tuán)隊(duì)溝通能力。提高軟件生產(chǎn)率的主要舉措有:文化方面12.1軟件維護(hù)

要想提高軟件產(chǎn)品的可維護(hù)性,軟件開(kāi)發(fā)人員需要在開(kāi)發(fā)過(guò)程和維護(hù)過(guò)程中都對(duì)其非常重視。提高可維護(hù)性的措施有以下幾種。(1)建立完整的文檔。完整、準(zhǔn)確的文檔有利于提高軟件產(chǎn)品的可理解性。文檔包括系統(tǒng)文檔和用戶(hù)文檔,它是對(duì)軟件開(kāi)發(fā)過(guò)程的詳細(xì)說(shuō)明,是用戶(hù)及開(kāi)發(fā)人員了解系統(tǒng)的重要依據(jù)。完整的文檔有助于用戶(hù)及開(kāi)發(fā)人員對(duì)系統(tǒng)進(jìn)行全面的了解。(2)采用先進(jìn)的維護(hù)工具和技術(shù)。先進(jìn)的維護(hù)工具和技術(shù)可以直接提高軟件產(chǎn)品的可維護(hù)性。例如,采用面向?qū)ο蟮能浖_(kāi)發(fā)方法、高級(jí)程序設(shè)計(jì)語(yǔ)言以及自動(dòng)化的軟件維護(hù)工具等。(3)注重可維護(hù)性的評(píng)審環(huán)節(jié)。在軟件開(kāi)發(fā)過(guò)程中,每一階段的工作完成前,都必須通過(guò)嚴(yán)格的評(píng)審。由于軟件開(kāi)發(fā)過(guò)程中的每一個(gè)階段都與產(chǎn)品的可維護(hù)性相關(guān),因此對(duì)軟件可維護(hù)性的評(píng)審應(yīng)該貫穿于每個(gè)階段完成前的評(píng)審活動(dòng)中。12.1軟件維護(hù)

12.1.4軟件維護(hù)的副作用軟件維護(hù)是存在風(fēng)險(xiǎn)的。對(duì)原有軟件產(chǎn)品的一個(gè)微小的改動(dòng)都有可能引入新的錯(cuò)誤,造成意想不到的后果。軟件維護(hù)的副作用主要有3類(lèi),包括修改代碼的副作用、修改數(shù)據(jù)的副作用和修改文檔的副作用。(1)人類(lèi)通過(guò)編程語(yǔ)言與計(jì)算機(jī)進(jìn)行交流,每種編程語(yǔ)言都有嚴(yán)格的語(yǔ)義和語(yǔ)法結(jié)構(gòu)。編程語(yǔ)言的微小錯(cuò)誤,哪怕是一個(gè)標(biāo)點(diǎn)符號(hào)的錯(cuò)誤,都會(huì)造成軟件系統(tǒng)無(wú)法正常運(yùn)行。(2)修改數(shù)據(jù)的副作用是指數(shù)據(jù)結(jié)構(gòu)被改動(dòng)時(shí)有新的錯(cuò)誤產(chǎn)生的現(xiàn)象。當(dāng)數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時(shí),可能新的數(shù)據(jù)結(jié)構(gòu)不適應(yīng)原有的軟件設(shè)計(jì),從而導(dǎo)致錯(cuò)誤的產(chǎn)生。(3)修改文檔的副作用是指在軟件產(chǎn)品的內(nèi)容更改之后沒(méi)有對(duì)文檔進(jìn)行相應(yīng)的更新而為以后的工作帶來(lái)不便的情況。12.1軟件維護(hù)

12.1.5軟件再工程技術(shù)軟件維護(hù)使軟件的可維護(hù)性下降,束縛著新軟件的開(kāi)發(fā)。同時(shí),待維護(hù)的軟件又常常是業(yè)務(wù)的關(guān)鍵,廢棄它們重新開(kāi)發(fā)不僅十分可惜,而且風(fēng)險(xiǎn)較大。軟件維護(hù)的此類(lèi)問(wèn)題引出了軟件再工程。軟件再工程是一類(lèi)軟件工程活動(dòng),通過(guò)對(duì)舊軟件實(shí)施處理,增進(jìn)對(duì)軟件的理解,同時(shí)又提高了軟件自身的可維護(hù)性、可復(fù)用性等。軟件再工程可以幫助軟件機(jī)構(gòu)降低軟件演化的風(fēng)險(xiǎn),可使軟件將來(lái)易于進(jìn)一步變更,有助于推動(dòng)軟件維護(hù)自動(dòng)化的發(fā)展等等1.逆向工程軟件的逆向工程通過(guò)對(duì)程序的分析,導(dǎo)出更高抽象層次的表示,如從現(xiàn)存的程序中抽取數(shù)據(jù)、體系結(jié)構(gòu)、過(guò)程的設(shè)計(jì)信息等,是一個(gè)設(shè)計(jì)恢復(fù)過(guò)程。逆向工程過(guò)程所抽取的信息,一方面可以提供給軟件工程師以便在維護(hù)活動(dòng)中使用這些信息;另一方面可以用來(lái)重構(gòu)原來(lái)的系統(tǒng),使新系統(tǒng)更易維護(hù)。12.1軟件維護(hù)

2.重構(gòu)軟件重構(gòu)是對(duì)源代碼和/或數(shù)據(jù)進(jìn)行修改,使其易于理解或維護(hù),以適應(yīng)將來(lái)的變更。通常,重構(gòu)并不修改整個(gè)軟件程序的體系結(jié)構(gòu),而主要關(guān)注模塊的細(xì)節(jié)。如果重構(gòu)擴(kuò)展到模塊邊界之外并涉及軟件體系結(jié)構(gòu),則重構(gòu)變成了正向工程。軟件重構(gòu)中代碼重構(gòu)的目標(biāo)是生成可提供相同功能、更高質(zhì)量的程序。需要代碼重構(gòu)的模塊往往以難于理解、測(cè)試和維護(hù)的方式編碼。為此,用重構(gòu)工具分析源代碼,標(biāo)注出和結(jié)構(gòu)化程序設(shè)計(jì)概念相違背的部分,然后重構(gòu)此代碼,復(fù)審和測(cè)試生成的重構(gòu)代碼,更新代碼的內(nèi)部文檔。和代碼重構(gòu)不同,數(shù)據(jù)重構(gòu)發(fā)生在相當(dāng)?shù)偷某橄髮哟紊?,它是一種全范圍的再工程活動(dòng)。當(dāng)數(shù)據(jù)結(jié)構(gòu)較差時(shí),其程序?qū)㈦y以進(jìn)行適應(yīng)性修改和增強(qiáng)。數(shù)據(jù)重構(gòu)在多數(shù)情況下由逆向工程活動(dòng)開(kāi)始,理解現(xiàn)存的數(shù)據(jù)結(jié)構(gòu),稱(chēng)之為數(shù)據(jù)分析。數(shù)據(jù)分析完成后則開(kāi)始數(shù)據(jù)重新設(shè)計(jì),包括數(shù)據(jù)記錄標(biāo)準(zhǔn)化、數(shù)據(jù)命名合理化、文件格式轉(zhuǎn)換、數(shù)據(jù)庫(kù)類(lèi)型轉(zhuǎn)換等等。軟件重構(gòu)的好處是,它可以提高程序的質(zhì)量、改善軟件生產(chǎn)率、減少維護(hù)工作量、使軟件易于測(cè)試和調(diào)試等等。12.1軟件維護(hù)

3.正向工程正向工程也稱(chēng)為改造,用從現(xiàn)存軟件的設(shè)計(jì)恢復(fù)中得到的信息去重構(gòu)現(xiàn)存系統(tǒng),以改善其整體質(zhì)量。在大多數(shù)情況下,實(shí)行再工程的軟件需重新實(shí)現(xiàn)現(xiàn)存系統(tǒng)的功能,并加入新功能和/或改善整體性能。正向工程過(guò)程將應(yīng)用軟件工程的原則、概念和方法來(lái)重建現(xiàn)存應(yīng)用。由于軟件的原型(現(xiàn)存系統(tǒng))已經(jīng)存在,正向工程的生產(chǎn)率將遠(yuǎn)高于平均水平;同時(shí),又由于用戶(hù)已對(duì)該軟件有經(jīng)驗(yàn),因而正向工程過(guò)程可以很容易地確定新的需求和變化的方向。這些優(yōu)越性使得再工程比重新開(kāi)發(fā)更有吸引力。12.2軟件估算

12.2.1軟件估算的概念軟件估算是指以準(zhǔn)確的調(diào)查資料和項(xiàng)目信息(如人員和設(shè)備信息)為依據(jù),從估算對(duì)象的歷史,現(xiàn)狀及其規(guī)律性出發(fā),運(yùn)用科學(xué)的方法,對(duì)估算對(duì)象的規(guī)模,所需工作量和成本進(jìn)行的測(cè)定。軟件估算的內(nèi)容包括軟件規(guī)模、工作量和進(jìn)度。對(duì)于估算來(lái)說(shuō),有些可以做的很仔細(xì),而大多數(shù)只是憑主觀經(jīng)驗(yàn)判斷。所以多數(shù)估算難以做到10%以?xún)?nèi)的精確度,有的甚至誤差達(dá)幾倍,尤其是估算人員經(jīng)驗(yàn)不足或估算項(xiàng)目沒(méi)有可參考憑借之時(shí)。不同的軟件開(kāi)發(fā)階段,估算的對(duì)象和使用的方法都會(huì)有所不同,估算的精確度也不一樣。一般來(lái)說(shuō),隨著項(xiàng)目進(jìn)展,對(duì)項(xiàng)目?jī)?nèi)容了解愈多,估算也會(huì)越來(lái)越精確。12.2軟件估算

12.2.2軟件估算的方法估算的方法有很多,大致分為基于分解技術(shù)的估算方法和基于經(jīng)驗(yàn)?zāi)P偷墓浪惴椒▋纱箢?lèi)?;诜纸饧夹g(shù)的方法包括功能點(diǎn)估算法、特征點(diǎn)估算法、對(duì)象點(diǎn)估算法、代碼行(LOC)估算法、MARKⅡ等;基于經(jīng)驗(yàn)?zāi)P偷姆椒ò↖BM模型、普特南模型、COCOMO模型等。12.3軟件開(kāi)發(fā)進(jìn)度計(jì)劃

項(xiàng)目管理者的目標(biāo)是定義全部項(xiàng)目任務(wù),識(shí)別出關(guān)鍵任務(wù),規(guī)定完成各項(xiàng)任務(wù)的起、止日期,跟蹤關(guān)鍵任務(wù)的進(jìn)展?fàn)顩r,以保證能及時(shí)發(fā)現(xiàn)拖延進(jìn)度的情況。為了做到這一點(diǎn),管理者必須制訂一個(gè)足夠詳細(xì)的進(jìn)度表,以便監(jiān)督項(xiàng)目進(jìn)度,并控制整個(gè)項(xiàng)目。12.3軟件開(kāi)發(fā)進(jìn)度計(jì)劃

12.3.1Gantt圖Gantt圖(甘特圖)是一種能有效顯示行動(dòng)時(shí)間規(guī)劃的方法,也叫橫道圖或條形圖。甘特圖把計(jì)劃和進(jìn)度安排兩種職能結(jié)合在一起,縱向列出項(xiàng)目活動(dòng),橫向列出時(shí)間跨度。每項(xiàng)活動(dòng)計(jì)劃或?qū)嶋H的完成情況用橫道線(xiàn)表示。橫道線(xiàn)還顯示了每項(xiàng)活動(dòng)的開(kāi)始時(shí)間和終止時(shí)間。某項(xiàng)目進(jìn)度計(jì)劃的甘特圖如圖所示。12.3軟件開(kāi)發(fā)進(jìn)度計(jì)劃

12.3.2PERT圖PERT圖也稱(chēng)“計(jì)劃評(píng)審技術(shù)”,它采用網(wǎng)絡(luò)圖來(lái)描述一個(gè)項(xiàng)目的任務(wù)網(wǎng)絡(luò)。不僅可以表達(dá)子任務(wù)的計(jì)劃安排,還可以在任務(wù)計(jì)劃執(zhí)行過(guò)程中估計(jì)任務(wù)完成的情況,分析某些子任務(wù)完成情況對(duì)全局的影響,找出影響全局的區(qū)域和關(guān)鍵子任務(wù)。以便及時(shí)采取措施,確保整個(gè)項(xiàng)目的完成。PERT圖是一個(gè)有向圖,圖中的有向弧表示任務(wù),它可以標(biāo)上完成該任務(wù)所需的時(shí)間;圖中的結(jié)點(diǎn)表示流入結(jié)點(diǎn)的任務(wù)的結(jié)束,并開(kāi)始流出結(jié)點(diǎn)的任務(wù),這里把結(jié)點(diǎn)稱(chēng)為事件。只有當(dāng)流入該結(jié)點(diǎn)的所有任務(wù)都結(jié)束時(shí),結(jié)點(diǎn)所表示的事件才出現(xiàn),流出結(jié)點(diǎn)的任務(wù)才可以開(kāi)始。事件本身不消耗時(shí)間和資源,它僅表示某個(gè)時(shí)間點(diǎn)。每個(gè)事件有一個(gè)事件號(hào)和出現(xiàn)該事件的最早時(shí)刻和最遲時(shí)刻。每個(gè)任務(wù)還有一個(gè)松弛時(shí)間,表示在不影響整個(gè)工期的前提下,完成該任務(wù)有多少機(jī)動(dòng)余地。松弛時(shí)間為0的任務(wù)構(gòu)成了完成整個(gè)工程的關(guān)鍵路徑。12.3軟件開(kāi)發(fā)進(jìn)度計(jì)劃

PERT圖不僅給出了每個(gè)任務(wù)的開(kāi)始時(shí)間、結(jié)束時(shí)間和完成該任務(wù)所需的時(shí)間,還給出了任務(wù)之間的關(guān)系,即哪些任務(wù)完成后才能開(kāi)始另外一些任務(wù),以及如期完成整個(gè)工程的關(guān)鍵路徑。松弛時(shí)間則反映了完成某些任務(wù)是可以推遲其開(kāi)始時(shí)間或延長(zhǎng)其所需的完成時(shí)間。但是PERT圖不能反映任務(wù)之間的并行關(guān)系。某項(xiàng)目的PERT圖如左圖所示關(guān)鍵路徑如圖中粗黑線(xiàn),該項(xiàng)目最短完成時(shí)間為70。12.4軟件開(kāi)發(fā)人員組織

為了成功地完成軟件開(kāi)發(fā)工作,項(xiàng)目組成員必須以一種有意義且有效的方式彼此交互和通信。如何組織項(xiàng)目組是一個(gè)管理問(wèn)題,管理者必須合理地組織項(xiàng)目組,使項(xiàng)目組有較高生產(chǎn)率,能夠按預(yù)定的進(jìn)度計(jì)劃完成所承擔(dān)的工作。經(jīng)驗(yàn)表明,項(xiàng)目組組織得越好,其生產(chǎn)率越高,而且產(chǎn)品質(zhì)量也越高。組織軟件開(kāi)發(fā)人員的方法,取決于所承擔(dān)的項(xiàng)目的特點(diǎn)、以往的組織經(jīng)驗(yàn)以及軟件開(kāi)發(fā)公司負(fù)責(zé)人的看法和喜好。12.4軟件開(kāi)發(fā)人員組織

12.4.1民主制程序員組民主制程序員組的一個(gè)重要特點(diǎn)是,小組成員完全平等,享有充分民主,通過(guò)協(xié)商做出技術(shù)決策,對(duì)發(fā)現(xiàn)錯(cuò)誤抱著積極的態(tài)度,這種積極態(tài)度有助于更快速地發(fā)現(xiàn)錯(cuò)誤,從而導(dǎo)致高質(zhì)量的代碼;小組有高度凝聚力,組內(nèi)學(xué)術(shù)空氣濃厚,有利于攻克技術(shù)難關(guān)。因此,小組成員間的通信是平行的,如果一個(gè)小組有n個(gè)成員,則可能的通信信道有n(n?1)/2條。但其缺點(diǎn)是,小組人多的話(huà),通信量會(huì)非常大;如果組內(nèi)多數(shù)成員技術(shù)水平不高,或是缺乏經(jīng)驗(yàn)的新手,很有可能不能完成項(xiàng)目。12.4軟件開(kāi)發(fā)人員組織

12.4.2主程序員組為了使少數(shù)經(jīng)驗(yàn)豐富、技術(shù)高超的程序員在軟件開(kāi)發(fā)過(guò)程中能夠發(fā)揮更大作用,程序設(shè)計(jì)小組也可以采用主程序員組的組織方式。使用“主程序員組”的組織方式,可提高生產(chǎn)率,減少總的人/年(或人/月)數(shù)。12.4軟件開(kāi)發(fā)人員組織

12.4.3現(xiàn)代程序員組實(shí)際的“主程序員”應(yīng)該由兩個(gè)人來(lái)?yè)?dān)任:一個(gè)是技術(shù)負(fù)責(zé)人,負(fù)責(zé)小組的技術(shù)活動(dòng);一個(gè)是行政負(fù)責(zé)人,負(fù)責(zé)所有非技術(shù)的管理決策。由于程序員組的成員人數(shù)不宜過(guò)多,當(dāng)軟件項(xiàng)目規(guī)模較大時(shí),應(yīng)該把程序員分成若干個(gè)小組(每組2-8人)。把民主制程序員組和主程序員組的優(yōu)點(diǎn)結(jié)合起來(lái),是在合適的地方采用分散作決定的方法。這樣做有利于形成暢通的通信渠道,以便充分發(fā)揮每個(gè)程序員的積極性和主動(dòng)性,集思廣益攻克技術(shù)難關(guān)。12.5軟件開(kāi)發(fā)風(fēng)險(xiǎn)管理

12.5.1軟件開(kāi)發(fā)風(fēng)險(xiǎn)軟件開(kāi)發(fā)風(fēng)險(xiǎn)是一種不確定的事件或條件,一旦發(fā)生,會(huì)對(duì)項(xiàng)目目標(biāo)產(chǎn)生某種正面或負(fù)面的影響。風(fēng)險(xiǎn)有其成因,同時(shí),如果風(fēng)險(xiǎn)發(fā)生,也導(dǎo)致某種后果。風(fēng)險(xiǎn)大多數(shù)隨著項(xiàng)目的進(jìn)展而變化,不確定性會(huì)隨之逐漸減少。風(fēng)險(xiǎn)具有3個(gè)屬性:風(fēng)險(xiǎn)事件的隨機(jī)性:風(fēng)險(xiǎn)事件是否發(fā)生、何時(shí)發(fā)生、后果怎樣?許多事件發(fā)生都遵循一定統(tǒng)計(jì)規(guī)律,這種性質(zhì)叫隨機(jī)性;風(fēng)險(xiǎn)的相對(duì)性:風(fēng)險(xiǎn)總是相對(duì)項(xiàng)目活動(dòng)主體而言,同樣的風(fēng)險(xiǎn)對(duì)于不同的主體有不同的影響;風(fēng)險(xiǎn)的可變性:辯證唯物主義認(rèn)為,任何事情和矛盾都可以在一定條件下向自己的反面轉(zhuǎn)化了去,這里的條件指活動(dòng)涉及的一切風(fēng)險(xiǎn)因素,當(dāng)這些條件發(fā)生變化時(shí),必然會(huì)引起風(fēng)險(xiǎn)的變化。12.5軟件開(kāi)發(fā)風(fēng)險(xiǎn)管理

按照不同的分類(lèi)標(biāo)準(zhǔn),風(fēng)險(xiǎn)可以分為不同的類(lèi)別。按風(fēng)險(xiǎn)后果劃分,可以分為純粹風(fēng)險(xiǎn)和投機(jī)風(fēng)險(xiǎn);按風(fēng)險(xiǎn)來(lái)源劃分,可以分為自然風(fēng)險(xiǎn)和人為風(fēng)險(xiǎn);按風(fēng)險(xiǎn)是否可管理劃分,可以分為可以預(yù)測(cè)并可采取相應(yīng)措施加以控制的風(fēng)險(xiǎn),反之,則為不可管理的風(fēng)險(xiǎn);按風(fēng)險(xiǎn)影響范圍劃分,可以分為局部風(fēng)險(xiǎn)和總體風(fēng)險(xiǎn);按風(fēng)險(xiǎn)的可預(yù)測(cè)性劃分,可以分為已知風(fēng)險(xiǎn)、可預(yù)測(cè)風(fēng)險(xiǎn)和不可預(yù)測(cè)風(fēng)險(xiǎn);按風(fēng)險(xiǎn)后果的承擔(dān)者劃分,可以分為業(yè)主風(fēng)險(xiǎn)、政府風(fēng)險(xiǎn)、承包商風(fēng)險(xiǎn)、投資方風(fēng)險(xiǎn)、設(shè)計(jì)單位風(fēng)險(xiǎn)、監(jiān)理單位風(fēng)險(xiǎn)、供應(yīng)商風(fēng)險(xiǎn)、擔(dān)保方風(fēng)險(xiǎn)和保險(xiǎn)公司風(fēng)險(xiǎn)等。12.5軟件開(kāi)發(fā)風(fēng)險(xiǎn)管理

12.5.2軟件開(kāi)發(fā)風(fēng)險(xiǎn)管理風(fēng)險(xiǎn)管理就是預(yù)測(cè)在項(xiàng)目中可能出現(xiàn)的最嚴(yán)重的問(wèn)題(傷害或損失),以及采取必要的措施來(lái)處理。12.6軟件質(zhì)量保證

12.6.1軟件質(zhì)量的基本概念質(zhì)量是產(chǎn)品的生命線(xiàn),保證軟件產(chǎn)品的質(zhì)量是軟件產(chǎn)品生產(chǎn)過(guò)程的關(guān)鍵。ANSI/IEEE729-183把軟件質(zhì)量定義為“與軟件產(chǎn)品滿(mǎn)足規(guī)定的和隱含的需要的能力有關(guān)的特征或特性的組合”。也就是說(shuō),軟件產(chǎn)品包含一系列的特征或特性,這些特征或特性可以對(duì)產(chǎn)品在性能、功能、開(kāi)發(fā)標(biāo)準(zhǔn)化等各方面的績(jī)效進(jìn)行度量。軟件產(chǎn)品的質(zhì)量越高,其相關(guān)特征或特性就越能滿(mǎn)足用戶(hù)的需求。實(shí)際上,可以通俗地說(shuō),軟件質(zhì)量是指軟件系統(tǒng)滿(mǎn)足用戶(hù)需要或期望的程度。高質(zhì)量的軟件產(chǎn)品意味著較高的用戶(hù)滿(mǎn)意度及較低的缺陷等級(jí),它較好地滿(mǎn)足了用戶(hù)需求,具有高水平的可維護(hù)性和可靠性。不難理解,軟件的質(zhì)量是由多種因素決定的,它等價(jià)于軟件產(chǎn)品的一系列的質(zhì)量特性。根據(jù)ISOStandard9126的定義,軟件質(zhì)量的特性包括功能性、可靠性、可用性、效率、可維護(hù)性和可移植性。12.6軟件質(zhì)量保證

12.6.2軟件質(zhì)量保證的措施在軟件開(kāi)發(fā)實(shí)踐中,可以采取多種方法保證軟件產(chǎn)品的質(zhì)量。下面介紹幾種常用的方法。1.基于非執(zhí)行的測(cè)試非執(zhí)行的測(cè)試是指不具體執(zhí)行程序的測(cè)試工作,也稱(chēng)為軟件評(píng)審。非執(zhí)行的測(cè)試需要貫穿于整個(gè)軟件開(kāi)發(fā)過(guò)程。在項(xiàng)目開(kāi)發(fā)前期,軟件開(kāi)發(fā)人員需要制定詳細(xì)的開(kāi)發(fā)計(jì)劃以及評(píng)審計(jì)劃,標(biāo)識(shí)各階段的檢查重點(diǎn)以及階段工作的預(yù)期輸出,為以后的階段評(píng)審做準(zhǔn)備。在項(xiàng)目的階段評(píng)審工作中,要保證評(píng)審工作的嚴(yán)格性和規(guī)范性。首先,評(píng)審人員要具備相應(yīng)的資格和能力,評(píng)審團(tuán)隊(duì)的規(guī)模及任務(wù)分配要合理。每次評(píng)審都需要做詳細(xì)的評(píng)審記錄,并做出明確的評(píng)審結(jié)果。對(duì)于不合規(guī)范的工作成果還要給出修改意見(jiàn)。軟件評(píng)審的具體實(shí)施手段包括設(shè)計(jì)評(píng)審、審查、走查、個(gè)人評(píng)審等。12.6軟件質(zhì)量保證

2.基于執(zhí)行的測(cè)試基于執(zhí)行的測(cè)試是指通過(guò)具體地執(zhí)行程序,觀察實(shí)際輸出和預(yù)期輸出的差異,來(lái)發(fā)現(xiàn)軟件產(chǎn)品錯(cuò)誤的方法。軟件開(kāi)發(fā)人員通常使用一種或幾種自動(dòng)測(cè)試工具對(duì)系統(tǒng)進(jìn)行測(cè)試。但是,由于手工測(cè)試靈活性高的特點(diǎn),手工測(cè)試也是必需的。測(cè)試人員可以使用黑盒測(cè)試或白盒測(cè)試的方法設(shè)計(jì)測(cè)試用例進(jìn)行測(cè)試。軟件測(cè)試有利于及早揭示軟件缺陷,其相關(guān)內(nèi)容在第13章中已有詳細(xì)介紹。3.程序的正確性證明軟件測(cè)試有一條重要原則是:測(cè)試可以發(fā)現(xiàn)程序中的錯(cuò)誤,但是不能證明程序中沒(méi)有錯(cuò)誤??梢?jiàn),軟件測(cè)試并不能完全證明程序的正確性和可靠性。如果能采用某種方法對(duì)軟件系統(tǒng)運(yùn)行的正確性進(jìn)行證明,那么軟件產(chǎn)品的質(zhì)量將更有保證。目前,人們已經(jīng)研究出證明Pascal和LISP程序正確性的軟件系統(tǒng),正在對(duì)其進(jìn)行完善和功能擴(kuò)充。但是,這些系統(tǒng)還只適用于小型的軟件系統(tǒng),并不適合大規(guī)模的軟件系統(tǒng)。12.7軟件配置管理概述

軟件的開(kāi)發(fā)過(guò)程中,常常產(chǎn)生大量的文檔和程序版本,比如立項(xiàng)報(bào)告、需求規(guī)格說(shuō)明書(shū)、概要設(shè)計(jì)文檔、詳細(xì)設(shè)計(jì)文檔、編碼設(shè)計(jì)說(shuō)明、源代碼、可執(zhí)行程序、用戶(hù)手冊(cè)、測(cè)試計(jì)劃、測(cè)試用例、測(cè)試結(jié)果、在線(xiàn)文檔等,此外還可能有合同、會(huì)議記錄、報(bào)告、審核等管理文檔。在軟件開(kāi)發(fā)中,還常常存在對(duì)這些文檔的大量變更。在人員方面,隨著軟件規(guī)模越來(lái)越大,很多項(xiàng)目有成千的開(kāi)發(fā)人員,而且可能分布于世界各地,有不同的文化和社會(huì)背景。如何有效地組織和管理這些內(nèi)容,對(duì)于項(xiàng)目的成敗和效率影響非常重大。12.7軟件配置管理概述

12.7.2配置管理的過(guò)程配置管理的工作范圍一般包括4個(gè)方面:標(biāo)識(shí)配置項(xiàng)、進(jìn)行配置控制、記錄配置狀態(tài)、執(zhí)行配置審計(jì)。1.標(biāo)識(shí)配置項(xiàng)所謂配置項(xiàng)是配置管理中的基本單元,每個(gè)配置項(xiàng)應(yīng)該包含相應(yīng)的基本配置管理的信息。標(biāo)識(shí)配置項(xiàng)就是要給配置項(xiàng)取一個(gè)合適的名字。所有的軟件產(chǎn)品都要進(jìn)行配置項(xiàng)的標(biāo)識(shí),該標(biāo)識(shí)符應(yīng)該具有唯一性,并且要遵循特定的版本命名規(guī)律,以便于管理和追蹤。比如,V2015.0.1,V2016.1.2。12.7軟件配置管理概述

2.進(jìn)行配置控制進(jìn)行配置控制是配置管理的關(guān)鍵,包括訪(fǎng)問(wèn)控制、版本控制、變更控制和產(chǎn)品發(fā)布控制等。(1)訪(fǎng)問(wèn)控制通過(guò)配置管理中的“軟件開(kāi)發(fā)庫(kù)”、“軟件基線(xiàn)庫(kù)”、“軟件產(chǎn)品庫(kù)”來(lái)實(shí)現(xiàn),每個(gè)庫(kù)對(duì)應(yīng)著不同級(jí)別的操作權(quán)限,為團(tuán)隊(duì)成員授予不同的訪(fǎng)問(wèn)權(quán)利。(2)版本控制是指用戶(hù)能夠?qū)m當(dāng)?shù)陌姹具M(jìn)行選擇從而獲得需要的系統(tǒng)配置,它往往使用自動(dòng)的版本控制工具來(lái)實(shí)現(xiàn),比如Git。(3)變更控制是應(yīng)對(duì)軟件開(kāi)發(fā)過(guò)程中各種變化的機(jī)制,可以通過(guò)建立控制點(diǎn)和報(bào)告與審查制度來(lái)實(shí)現(xiàn)。(4)產(chǎn)品發(fā)布控制面向最終發(fā)布版本的軟件產(chǎn)品,旨在保證提交給用戶(hù)的軟件產(chǎn)品版本是完整、正確和一致的。12.7軟件配置管理概述

3.記錄配置狀態(tài)記錄配置狀態(tài)的目的是使配置管理的過(guò)程具有可追蹤性。配置狀態(tài)報(bào)告記錄了軟件開(kāi)發(fā)過(guò)程中每一次配置變更的詳細(xì)信息,包括改動(dòng)的配置項(xiàng)、改動(dòng)內(nèi)容、改動(dòng)時(shí)間和改動(dòng)人等。配置狀態(tài)報(bào)告是開(kāi)發(fā)人員之間進(jìn)行交流的重要工具,對(duì)項(xiàng)目的成功非常重要。4.執(zhí)行配置審計(jì)配置審計(jì)是為了保證軟件工作產(chǎn)品的一致性和完整性,從而保證最終軟件版本產(chǎn)品發(fā)布的正確性。軟件的配置管理貫穿于整個(gè)軟件開(kāi)發(fā)過(guò)程,可以建立和維護(hù)在整個(gè)軟件生命周期內(nèi)軟件產(chǎn)品的完整性。目前市場(chǎng)上流行的配置管理工具有很多,比如微軟公司的VisualSourceSafe(VSS)、Rational公司的ClearCase以及Github的Git等。12.8軟件工程標(biāo)準(zhǔn)與軟件文檔

12.8.1軟件工程標(biāo)準(zhǔn)1.軟件工程標(biāo)準(zhǔn)化的定義在軟件工程項(xiàng)目中,為了便于項(xiàng)目?jī)?nèi)部不同人員之間交流信息,要制定相應(yīng)的標(biāo)準(zhǔn)來(lái)規(guī)范軟件開(kāi)發(fā)過(guò)程和產(chǎn)品。隨著軟件工程學(xué)的發(fā)展,軟件開(kāi)發(fā)工作的范圍從只是使用程序設(shè)計(jì)語(yǔ)言編寫(xiě)程序,擴(kuò)展到整個(gè)軟件生命期,包括軟件需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、運(yùn)行和維護(hù),直到軟件退役。軟件工程還有一些管理工作,如過(guò)程管理、產(chǎn)品質(zhì)量管理和開(kāi)發(fā)風(fēng)險(xiǎn)管理等。所有這些工作都應(yīng)當(dāng)逐步建立其標(biāo)準(zhǔn)或規(guī)范。由于計(jì)算機(jī)技術(shù)發(fā)展迅速,在未形成標(biāo)準(zhǔn)之前,計(jì)算機(jī)行業(yè)中先使用一些約定,然后逐漸形成標(biāo)準(zhǔn)。軟件工程標(biāo)準(zhǔn)化就是對(duì)軟件生命期內(nèi)的所有開(kāi)發(fā)、維護(hù)和管理工作都逐步建立起標(biāo)準(zhǔn)。12.8軟件工程標(biāo)準(zhǔn)與軟件文檔

12.8.2軟件文檔在軟件工程中,文檔記錄了從需求分析到產(chǎn)品設(shè)計(jì)再到產(chǎn)品實(shí)現(xiàn)及測(cè)試的過(guò)程,甚至到產(chǎn)品交付以及交付后的使用情況等各個(gè)階段的相關(guān)信息。文檔一方面充當(dāng)了各個(gè)開(kāi)發(fā)階段之間的橋梁,作為前一階段的工作成果及結(jié)束標(biāo)志,它使分析有條不紊地過(guò)渡到設(shè)計(jì),再使設(shè)計(jì)的成果物化為軟件。另一方面,文檔在團(tuán)隊(duì)的開(kāi)發(fā)中起到了重要的協(xié)調(diào)作用。此外,還有一些與用戶(hù)打交道的文檔成為用戶(hù)使用軟件產(chǎn)品時(shí)最得力的助手。合格的軟件工程文檔應(yīng)該具備以下幾個(gè)特性。

(1)及時(shí)性(2)完整性(3)實(shí)用性 (4)規(guī)范性(5)結(jié)構(gòu)化(6)簡(jiǎn)潔性12.8軟件工程標(biāo)準(zhǔn)與軟件文檔

軟件文檔的分類(lèi)12.9軟件過(guò)程能力成熟度模型

軟件過(guò)程能力成熟度模型(CapabilityMaturityModel,CMM)是用于評(píng)估軟件能力與成熟度的一套標(biāo)準(zhǔn),它由美國(guó)卡內(nèi)基—梅隆大學(xué)軟件工程研究所推出,側(cè)重于軟件開(kāi)發(fā)過(guò)程的管理及工程能力的提高與評(píng)估,是國(guó)際軟件業(yè)的質(zhì)量管理標(biāo)準(zhǔn)。軟件過(guò)程能力成熟度模型認(rèn)為,軟件質(zhì)量難以保證的問(wèn)題在很大程度上是由管理上的缺陷造成的,而不是由技術(shù)方面的問(wèn)題造成的。因此,軟件過(guò)程能力成熟度模型

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論