基于新信息技術的軟件工程與UML教程課件:軟件交付與維護_第1頁
基于新信息技術的軟件工程與UML教程課件:軟件交付與維護_第2頁
基于新信息技術的軟件工程與UML教程課件:軟件交付與維護_第3頁
基于新信息技術的軟件工程與UML教程課件:軟件交付與維護_第4頁
基于新信息技術的軟件工程與UML教程課件:軟件交付與維護_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件交付與維護任務一軟件交付任務二軟件維護習題

項目引導

本項目主要介紹軟件開發(fā)過程中核對用戶需求、檢驗軟件產(chǎn)品、面向客戶實施應用的軟件交付階段,以及為了改正軟件錯誤,或為了滿足用戶新的應用需要,而對軟件進行改錯、變更或進化的軟件維護階段的相關知識與技能。

知識目標

(1)了解軟件交付準則。

(2)掌握軟件交付過程中的對應文檔。

(3)理解軟件維護的概念。

(4)掌握軟件維護變更過程。

能力目標

(1)會編寫軟件交付對應文檔。

(2)會實施一般軟件維護。

任務一軟件交付

一、軟件交付準則計算機軟件的交付階段是繼計算機軟件的需求、設計、編碼、測試等階段之后的一個核對用戶需求、檢驗軟件產(chǎn)品、面向客戶實施應用的階段。本階段后期的工作主旨是通過對計算機軟件產(chǎn)品客戶方的安裝、應用及維護,收集計算機軟件產(chǎn)品運行期出現(xiàn)的問題,及時反饋用戶的使用信息,并轉化為計算機軟件產(chǎn)品升級換代的重要性材料。

二、軟件交付過程

1.對計算機軟件項目進行交付前的最終評審

這部分工作主要包括:

(1)核對軟件項目開發(fā)周期各階段形成文檔的完整性。這些階段性文檔包括:

①需求階段:《需求規(guī)格說明書》、《項目開發(fā)計劃》、《可行性研究報告》、《產(chǎn)品設計說明書》、《產(chǎn)品發(fā)布計劃》、《用戶手冊》、《操作手冊》。

②設計階段:《概要設計說明書》、《數(shù)據(jù)字典》、《詳細設計說明書》、《數(shù)據(jù)庫設計說明書》、《測試計劃》、《質量保證計劃》、《質量配置方案》。

③編碼階段:《測試報告》。

④測試階段:《測試報告》。

(2)評審階段性文檔的真實性、有效性。各階段文檔應當反映出所處階段的工作特點、待完成的工作指標和工作任務,應當符合軟件生命周期各階段的具體工作要求。

2.對計算機軟件項目進行交付階段的最終評審

這部分工作主要包括:

(1)評審最終產(chǎn)品是否符合需求階段《需求規(guī)格說明書》對用戶需求的定義。

(2)評審最終產(chǎn)品在邏輯設計上是否完全覆蓋了用戶的需求。

(3)評審最終產(chǎn)品在軟件測試上是否完全覆蓋了用戶的操作需求。

(4)安排、評審最終產(chǎn)品后期維護的準備工作。

任務二軟件維護

一、軟件維護的概念

1.軟件維護定義軟件維護(SoftwareMaintenance)是一個軟件工程名詞,是指在軟件產(chǎn)品發(fā)布后,因修正錯誤、提升性能或其他屬性而進行的軟件修改。軟件維護主要是指根據(jù)需求變化或硬件環(huán)境的變化對應用程序進行部分或全部的修改,修改時應充分利用源程序。修改后要填寫《程序修改登記表》,并在《程序變更通知書》上寫明新舊程序的不同之處。

具體地說,軟件維護涉及以下幾個方面的任務。

(1)改正性維護:由于軟件測試技術的限制,已投入使用的軟件必然會有一些隱藏的錯誤或缺陷,這些隱藏下來的錯誤或缺陷,在某些特定的使用環(huán)境下可能會暴露出來,并有可能影響到軟件的正常使用。

(2)適應性維護:隨著計算機技術的飛速發(fā)展,軟件的工作環(huán)境,例如硬件設備、軟件配置、數(shù)據(jù)環(huán)境、網(wǎng)絡環(huán)境等都有可能發(fā)生變化,為了使軟件適應這種變化,往往需要對軟件進行改造。

(3)完善性維護:在軟件使用過程中,用戶難免會對軟件提出一些新的與完善軟件有關的要求,例如,要求增加一些新的功能,要求對系統(tǒng)原有的功能關系做一些調(diào)整,要求提高數(shù)據(jù)檢索速度,要求操作界面更加人性化等,為了滿足這些要求,就必須對軟件進行改造,以使軟件在功能、性能、界面等方面有所進化,由于這些原因而對軟件進行的維護活動,就叫做完善性維護。

(4)預防性維護:預防性維護是為了改進應用軟件的可靠性和可維護性,適應未來的軟硬件環(huán)境的變化,而主動增加預防性的新功能,以使應用系統(tǒng)適應各類變化而不被淘汰。例如將專用報表功能改成通用報表生成功能,以適應將來報表格式的變化。這方面的維護工作量占整個維護工作量的4%左右。

大多數(shù)軟件維護活動的表現(xiàn)是:在軟件運行階段初期,改正性維護的工作量較大,而隨著軟件錯誤發(fā)現(xiàn)率的降低,軟件系統(tǒng)的工作逐步趨于穩(wěn)定,改正性維護也就由此下降。然而,隨著軟件使用時間的增加,用戶新的需求意愿會逐漸形成并提出,于是軟件適應性維護和完善性維護的工作量就會逐步增加。預防性維護是為了使軟件具有更好的可維護性、可靠性,或為了今后軟件進化的便利而進行的一系列與維護有關的準備性工作。

2.影響維護工作的因素

有關統(tǒng)計數(shù)據(jù)顯示,軟件維護活動所消耗的工作量占整個軟件生存期工作量的70%以上。許多軟件開發(fā)機構就因為軟件維護工作量巨大而導致新的軟件項目不能承接,新的軟件產(chǎn)品不能及時開發(fā)。軟件維護需要消耗這么大的工作量,其原因是什么呢?

有關研究表明,影響軟件維護工作量的原因,歸納起來主要有以下幾個方面:

(1)系統(tǒng)大?。很浖到y(tǒng)越大,其執(zhí)行功能越復雜,理解掌握起來越困難,因而需要更多的維護工作量。

(2)程序設計語言:許多軟件是用較老的程序設計語言編寫的,程序邏輯復雜、混亂,而且沒有做到模塊化和結構化,直接影響到程序的可讀性與可維護性。

(3)系統(tǒng)文檔:一些系統(tǒng)在開發(fā)時并沒有考慮到將來維護的便利,而且沒有按照軟件工程的要求進行開發(fā),因而沒有文檔,或文檔太少,或在長期的維護過程中文檔在許多地方與程序實現(xiàn)變得不一致,這樣在維護時就會遇到很大困難。

(4)系統(tǒng)年齡:老系統(tǒng)比新系統(tǒng)需要更多的維護工作量。隨著不斷的修改,老系統(tǒng)結構變得越來越亂,由于系統(tǒng)維護人員經(jīng)常更換,程序變得越來越難于理解。

(5)其他因素:包括應用的類型、數(shù)學模型、任務的難度、開關與標記、IF嵌套深度、索引或下標數(shù)等,它們都會給維護工作帶來影響。

3.非結構化與結構化維護

1)非結構化維護

非結構化維護往往與早期軟件非工程化開發(fā)有關系,是軟件開發(fā)過程中沒有按照軟件工程原則實施軟件開發(fā)的后遺癥。

應該說,軟件開發(fā)過程中文檔的完整性,對軟件今后的維護有非常大的影響。如果軟件配置僅僅只有源程序代碼,那么軟件維護活動就需要直接從源程序代碼開始。顯然,面對這樣的軟件進行維護,將會是困難重重,而且往往還會使程序變得更加混亂,更加不能理解。

2)結構化維護

軟件工程所要求的是結構化維護,它建立在嚴格按照軟件工程原則實施軟件開發(fā)的基礎上,因此各個階段的文檔完整,能夠比較全面地說明軟件的功能、性能、軟件結構、數(shù)據(jù)結構、系統(tǒng)接口和設計約束等,這些都將給后續(xù)軟件的維護帶來便利。

實際上,結構化維護就是一種依靠完整的軟件配置而進行的維護,其中的軟件配置包括需求規(guī)格說明、設計說明、測試說明、源程序清單和維護計劃等諸多文檔,因此,結構化維護可以從評價文檔開始。例如,通過對設計說明的評價,確定軟件重要的結構特點、性能特點以及接口特點,估量所要求的改動將給軟件帶來的影響,并為維護實施途徑制訂出合適的計劃。

二、軟件維護的實施

1.維護機構

隨著軟件維護工作量的不斷增加,許多軟件開發(fā)單位開始意識到了設立軟件維護機構的重要性。這種維護機構有可能是一個臨時維護小組,也有可能是一個長期專門從事軟件維護的職能部門。

一項維護工作,無論是臨時的還是長期的,都往往會涉及以下人員或角色:

(1)維護機構負責人:全權負責所有維護活動,包括技術與管理兩個方面的工作,并負責向上級主管部門報告維護工作的開展情況。

(2)系統(tǒng)監(jiān)督員:負責對維護申請進行技術性評價,以確保維護的有效性。

(3)配置管理員:進行與軟件維護有關的軟件配置管理。

(4)維護管理員:負責同軟件開發(fā)部門或其他部門的聯(lián)系,收集、整理有關維護的信息。

(5)維護技術人員:負責分析程序錯誤、進行程序修正。

為使維護工作正常開展,上述維護人員需要協(xié)作工作,例如可以按照下面的協(xié)作關系與工作步驟實施對軟件的維護:

(1)有關人員將維護申請報告表提交給維護管理員登記。

(2)維護管理員把維護申請報告交系統(tǒng)監(jiān)督員進行技術性評價。

(3)系統(tǒng)監(jiān)督員從技術角度對該項維護的可行性、必要性等做出說明。

(4)在得到系統(tǒng)監(jiān)督員的技術性評價之后,維護管理員把維護申請報告表提交給維護機構負責人。

(5)維護機構負責人將根據(jù)對維護申請報告的技術評價,決定如何進行軟件維護。

(6)維護機構負責人需要將維護決定通知維護管理員,以便維護管理員能夠及時安排相關技術人員實施維護。

(7)維護機構負責人還需要將維護決定通知配置管理員,以便技術人員在對系統(tǒng)進行維護的過程中,配置管理員能夠嚴格把關,控制維護范圍,并對軟件配置進行審計。

圖6-1是維護工作人員之間的協(xié)作關系圖示說明。

圖6-1維護工作人員之間的協(xié)作關系圖

2.維護申請報告

為使維護按規(guī)程進行,維護需要先以文檔的形式提出申請,例如,由申請維護的人員(用戶、開發(fā)人員)填寫一份軟件維護申請報告表。

對于改正性維護,申請報告必須盡量完整地說明錯誤產(chǎn)生的情況,包括運行時的環(huán)境、輸入數(shù)據(jù)、錯誤提示等。

對于適應性或完善性的維護,則應該提交一份簡要的維護要求說明。

在維護過程中,軟件維護機構內(nèi)部還應該制定一份軟件修改報告,該報告是維護階段的技術性文檔,其一般包含以下信息:

(1)維護工作量;

(2)維護類型;

(3)維護的優(yōu)先順序;

(4)預見的維護結果。

3.軟件維護工作流程

軟件維護的工作流程如圖6-2所示,其主要工作步驟如下:

(1)確定維護類型。由于用戶的看法可能會與維護人員的評價不一致,當出現(xiàn)意見不一致時,維護人員應該與用戶進行協(xié)商。

(2)對于改正性維護申請,需要先對錯誤的嚴重性進行評價。如果存在嚴重的錯誤,則必須立即安排維護人員進行“救火”式的緊急維護。而對于不太嚴重的錯誤,則可根據(jù)任務情況和問題的嚴重程度列入維護計劃,按優(yōu)先順序統(tǒng)一安排維護時間。

圖6-2軟件維護工作流程

(3)對于適應性維護和完善性維護申請,需要先確定每項申請的優(yōu)先次序。若某項申請的優(yōu)先級非常高,就可立即開始維護工作,否則應將維護申請納入軟件開發(fā)任務計劃進行排隊(適應性維護與完善性維護可當做開發(fā)看待),統(tǒng)一安排維護時間。

盡管維護申請的類型不同,但都要進行同樣的技術工作。這些工作有:修改軟件需求說明、修改軟件設計、設計評審、對源程序做必要的修改、單元測試、集成測試(回歸測試)、確認測試、軟件配置評審等。

評審內(nèi)容包括以下幾方面:

(1)設計、編碼、測試中的哪些方面還可以改進;

(2)哪些維護資源應該有,但事實上卻沒有;

(3)維護工作中主要的或次要的障礙是什么;

(4)是否需要考慮預防性維護。

維護情況評審對今后維護工作的進行有重要的影響,并可為軟件機構的有效管理提供重要的反饋信息。

4.維護記錄

為了估計軟件維護的有效程度,確定軟件產(chǎn)品的質量,同時確定維護的實際開銷,需要在維護的過程中做好維護檔案記錄。

5.維護評價

由于缺乏可靠的數(shù)據(jù),評價維護活動往往比較困難。但如果維護的檔案記錄做得比較好,就可以得出一些維護“性能”方面的度量值。

維護評價可參考的度量值如下:

(1)每次程序運行時的平均出錯次數(shù);

(2)花費在每類維護上的總“人時”數(shù);

(3)每個程序、每種語言、每種維護類型的程序平均修改次數(shù);

(4)因為維護,增加或刪除每個源程序語句所花費的平均“人時”數(shù);

(5)用于每種語言的平均“人時”數(shù);

(6)維護申請報告的平均處理時間;

(7)各類維護申請的百分比。

一個應用廣泛的可維護性評估模型是:通過對可理解性、可靠性、可測試性、可修改性、可移植性、運行效率和可使用性這七個方面的軟件特性的評價,而對軟件的可維護性進行綜合評估。

下面是對這七個方面特性的說明:

(1)可理解性:指人們通過閱讀源代碼和相關文檔,了解程序功能及其如何運行的難易程度。一個可理解的程序應該具有模塊化、風格一致、結構完整等特性。

(2)可靠性:指程序按照用戶的要求和設計目標,在給定的一段時間內(nèi)正確執(zhí)行的概率。其度量標準有:平均失效間隔時間(MTTF)、平均修復時間(MTTR)。

(3)可測試性:指診斷程序錯誤的難易程度。對于程序模塊,可用程序復雜性來度量可測試性。程序的環(huán)路復雜性越大,程序的路徑就越多,全面測試程序的難度就越大。

(4)可修改性:指程序修改的難易程度。一個可修改的程序應當是可理解的、通用的、靈活的、簡單的。

(5)可移植性:指程序轉移到一個新的計算環(huán)境的可能性的大小。一個可移植的程序應具有結構良好、靈活,并具有與計算機、操作系統(tǒng)無關的特點。

(6)運行效率:指一個程序能執(zhí)行預定功能而又不浪費機器資源的程度。這些機器資源包括:內(nèi)存容量、外存容量、通道容量和執(zhí)行時間。

(7)可使用性:指對于用戶而言,程序的方便、實用和易于使用的程度。

需要注意的是,上述七個方面的軟件特性,對于不同類型的軟件維護,會有不同的側重表現(xiàn)。表6-1顯示了各類維護中應該側重的特性

三、軟件配置管理

軟件配置管理(SoftwareConfigurationManagement,SCM)是一種標識、組織和控制修改的技術。軟件配置管理應用于整個軟件工程過程。在軟件建立時變更是不可避免的,而變更加劇了項目中軟件開發(fā)者之間的混亂。SCM活動的目標就是為了標識變更、控制變更、確保變更正確實現(xiàn)并向其他有關人員報告變更,可使錯誤降為最小并最有效地提高生產(chǎn)效率。

軟件配置管理是一組針對軟件產(chǎn)品的追蹤和控制活動,它貫穿于軟件生命周期的始終,并代表著軟件產(chǎn)品接受各項評審。

當對軟件進行維護時,軟件產(chǎn)品發(fā)生了變化,這一系列的改變,必須在軟件配置中體現(xiàn)出來,以防止因為維護所產(chǎn)生的變更給軟件帶來混亂。

軟件開發(fā)過程中,需要輸出的信息有三種:計算機程序、描述計算機程序的文檔和數(shù)據(jù)結構。軟件配置就由這些信息所組成。

1.配置標識

為了方便對軟件配置中的各個對象進行控制與管理,首先應給它們命名,再利用面向對象的方法組織它們。通常需要標識兩種類型的對象:基本對象和復合對象?;緦ο笫怯绍浖こ處熢诜治觥⒃O計、編碼和測試時所建立的“文本單元”。復合對象則是基本對象或其他復合對象的一個集合。

每個對象可用一組信息來唯一地標識它,這組信息包括名字、描述、資源、實現(xiàn)等內(nèi)容。

2.變更控制

軟件生命期內(nèi)全部的軟件配置是軟件產(chǎn)品的真正代表,必須使其保持精確。軟件工程過程中某一階段的變更,均要引起軟件配置的變更,這種變更必須嚴格加以控制和管理,以保證修改信息能夠精確、清晰地傳遞到軟件工程過程的下一步驟。

變更控制包括建立控制點和建立報告與審查制度。

軟件的變更通常有兩類不同的情況:

(

溫馨提示

  • 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

提交評論