農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)-軟件開發(fā)過程管理、改進(jìn)及維護(hù)_第1頁
農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)-軟件開發(fā)過程管理、改進(jìn)及維護(hù)_第2頁
農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)-軟件開發(fā)過程管理、改進(jìn)及維護(hù)_第3頁
農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)-軟件開發(fā)過程管理、改進(jìn)及維護(hù)_第4頁
農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)-軟件開發(fā)過程管理、改進(jìn)及維護(hù)_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

農(nóng)業(yè)物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)施項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件維護(hù)----5提高軟件維護(hù)性的方法5.1模塊化模塊化技術(shù)的優(yōu)點(diǎn)是如果需要改變某個(gè)模塊的功能,則只要改變這個(gè)模塊,對(duì)其他模塊影響很??;如果需要增加程序的某些功能,則僅需增加完成這些功能的新的模塊或模塊層;程序的測試與重復(fù)測試比較容易;程序錯(cuò)誤易于定位和糾正;容易提高程序效率。5.2結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)不僅使得模塊結(jié)構(gòu)標(biāo)準(zhǔn)化,而且將模塊間的相互作用也標(biāo)準(zhǔn)化了,因而把模塊化又向前推進(jìn)了一步。采用結(jié)構(gòu)化程序設(shè)計(jì)可以獲得良好的程序結(jié)構(gòu)。使用提高軟件質(zhì)量的技術(shù)和工具

5提高軟件維護(hù)性的方法5.3使用結(jié)構(gòu)化程序設(shè)計(jì)技術(shù),提高現(xiàn)有系統(tǒng)的可維護(hù)性

(1)采用備用件的方法——當(dāng)要修改某一個(gè)模塊時(shí),用一個(gè)新的結(jié)構(gòu)良好的模塊替換掉整個(gè)模塊。(2)采用自動(dòng)重建結(jié)構(gòu)和重新格式化的工具(結(jié)構(gòu)更新技術(shù))。(3)改進(jìn)現(xiàn)有程序的不完善的文檔。(4)使用結(jié)構(gòu)化程序設(shè)計(jì)方法實(shí)現(xiàn)新的子系統(tǒng)。(5)采用結(jié)構(gòu)化小組。5提高軟件維護(hù)性的方法

質(zhì)量保證審查除了保證軟件得到適當(dāng)?shù)馁|(zhì)量外,還可以用來檢測在開發(fā)和維護(hù)階段內(nèi)發(fā)生的質(zhì)量變化。一旦檢測出問題來,就可以采取措施糾正,以控制不斷增長的軟件維護(hù)成本。為了保證軟件的可維護(hù)性,有4種類型的軟件審查。檢查點(diǎn)審查驗(yàn)收檢查周期性的維護(hù)審查對(duì)軟件包進(jìn)行檢查5提高軟件維護(hù)性的方法實(shí)施開發(fā)階段產(chǎn)品的維護(hù)性審查

5提高軟件維護(hù)性的方法(1)檢查點(diǎn)審查保證軟件質(zhì)量的最佳方法是在軟件開發(fā)的最初階段就把質(zhì)量要求考慮進(jìn)去,并在開發(fā)過程每一個(gè)階段的終點(diǎn),設(shè)置檢查點(diǎn)進(jìn)行檢查。檢查的目的是要證實(shí),已開發(fā)的軟件是否符合標(biāo)準(zhǔn),是否滿足規(guī)定的質(zhì)量需求。5提高軟件維護(hù)性的方法(1)檢查點(diǎn)審查在不同的檢查點(diǎn),檢查的重點(diǎn)不完全相同,例如,在設(shè)計(jì)階段,檢查重點(diǎn)是可理解性、可修改性、可測試性??衫斫庑詸z查的重點(diǎn)是程序的復(fù)雜性。如下圖所示。(2)驗(yàn)收檢查驗(yàn)收檢查是一個(gè)特殊的檢查點(diǎn)的檢查,是交付使用前的最后一次檢查,是軟件投入運(yùn)行之前保證可維護(hù)性的最后機(jī)會(huì)。以下是驗(yàn)收檢查必須遵循的最小驗(yàn)收標(biāo)準(zhǔn)。1)需求和規(guī)范標(biāo)準(zhǔn)①需求應(yīng)當(dāng)以可測試的術(shù)語進(jìn)行書寫,按優(yōu)先次序排列和定義。②區(qū)分必須的、任選的、將來的需求。③包括對(duì)系統(tǒng)運(yùn)行時(shí)的計(jì)算機(jī)設(shè)備的需求;對(duì)維護(hù)、測試、操作,以及維護(hù)人員的需求;對(duì)測試工具等的需求。5提高軟件維護(hù)性的方法2)設(shè)計(jì)標(biāo)準(zhǔn)①程序應(yīng)設(shè)計(jì)成分層的模塊結(jié)構(gòu)。每個(gè)模塊應(yīng)完成唯一的功能,并達(dá)到高內(nèi)聚、低耦合。②通過一些知道預(yù)期變化的實(shí)例,說明設(shè)計(jì)的可擴(kuò)充性、可縮減性和可適應(yīng)性。5提高軟件維護(hù)性的方法3)源代碼標(biāo)準(zhǔn)①盡可能使用程序設(shè)計(jì)語言的標(biāo)準(zhǔn)版本。②所有的代碼都必須具有良好的結(jié)構(gòu)。③所有的代碼都必須文檔化,在注釋中說明它的輸入、輸出,以及便于測試/再測試的一些特點(diǎn)與風(fēng)格。(4)文檔標(biāo)準(zhǔn),文檔中應(yīng)說明程序的輸入/輸出、使用的方法/算法、錯(cuò)誤恢復(fù)方法、所有參數(shù)的范圍、默認(rèn)條件等。5提高軟件維護(hù)性的方法5.3周期性地維護(hù)審查檢查點(diǎn)復(fù)查和驗(yàn)收檢查,可用來保證新軟件系統(tǒng)的可維護(hù)性。對(duì)已有的軟件系統(tǒng),則應(yīng)當(dāng)進(jìn)行周期性的維護(hù)檢查。軟件在運(yùn)行期間,必須對(duì)軟件做周期性的維護(hù)審查,以跟蹤軟件質(zhì)量的變化。周期性維護(hù)審查實(shí)際上是開發(fā)階段檢查點(diǎn)復(fù)查的繼續(xù),并且采用的檢查方法、檢查內(nèi)容都是相同的。

5提高軟件維護(hù)性的方法4)對(duì)軟件包進(jìn)行檢查軟件包是一種標(biāo)準(zhǔn)化了的、可為不同單位、不同用戶使用的封裝軟件。使用單位的維護(hù)人員首先要仔細(xì)分析、研究開發(fā)商提供的用戶手冊(cè)、操作手冊(cè)、培訓(xùn)教程、新版本說明、計(jì)算機(jī)環(huán)境要求書,以及開發(fā)商提供的驗(yàn)收測試報(bào)告等,在此基礎(chǔ)上,深入了解本單位的希望和要求,編制軟件包的檢驗(yàn)程序。該檢驗(yàn)程序檢查軟件包程序所執(zhí)行的功能是否與用戶的要求和條件相一致。5提高軟件維護(hù)性的方法

程序文檔是對(duì)程序總目標(biāo)、程序各組成部分之間的關(guān)系、程序設(shè)計(jì)策略、程序?qū)崿F(xiàn)過程的歷史數(shù)據(jù)等的說明和補(bǔ)充。程序文檔對(duì)提高程序的可理解性有著十分重要作用。在軟件維護(hù)階段,利用歷史文檔,可以大大簡化維護(hù)工作。改進(jìn)文檔

5提高軟件維護(hù)性的方法歷史文檔有如下3種:(1)系統(tǒng)開發(fā)日志:它記錄了項(xiàng)目的開發(fā)原則、開發(fā)目標(biāo)、優(yōu)先次序、選擇某種設(shè)計(jì)方案的理由、決策策略、使用的測試技術(shù)和工具、每天出現(xiàn)的問題、計(jì)劃的成功和失敗之處等。(2)錯(cuò)誤記載:它把出錯(cuò)的歷史情況記錄下來,對(duì)于預(yù)測今后可能發(fā)生的錯(cuò)誤類型及出錯(cuò)頻率有很大幫助。也有助于維護(hù)人員查明出現(xiàn)故障的程序或模塊,以便去修改或替換它們。5提高軟件維護(hù)性的方法5提高軟件維護(hù)性的方法(3)系統(tǒng)維護(hù)日志:記錄了在維護(hù)階段有關(guān)系統(tǒng)修改和修改目的的信息。包括修改的宗旨、修改的策略、存在的問題、問題所在的位置、解決問題的辦法、修改要求和說明、注意事項(xiàng)、新版本說明等信息。農(nóng)業(yè)物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)施項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件維護(hù)----1軟件維護(hù)的概念1軟件維護(hù)的概念軟件維護(hù)的定義軟件維護(hù)是指在軟件運(yùn)行/維護(hù)階段對(duì)軟件產(chǎn)品所進(jìn)行的修改就是所謂的維護(hù)。根據(jù)維護(hù)工作的性質(zhì),軟件維護(hù)的活動(dòng)可以分為以下4種類型。改正性維護(hù)適應(yīng)性維護(hù)完善性維護(hù)預(yù)防性維護(hù)1軟件維護(hù)的概念1.1改正性維護(hù)改正性維護(hù)(correctivemaintenance)為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)進(jìn)行的診斷和改正錯(cuò)誤的過程。例如,改正性維護(hù)可以是改正原來程序中開關(guān)使用的錯(cuò)誤;解決開發(fā)時(shí)未能測試各種可能情況帶來的問題等。1.2適應(yīng)性維護(hù)隨著信息技術(shù)的飛速發(fā)展,軟件運(yùn)行的外部環(huán)境(新的硬、軟件配置)或數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化,為了使軟件適應(yīng)這種變化,而修改軟件的過程叫做適應(yīng)性維護(hù)(adaptivemaintenance)。例如,需要對(duì)已運(yùn)行的軟件進(jìn)行改造,以適應(yīng)網(wǎng)絡(luò)環(huán)境或已升級(jí)改版的操作系統(tǒng)要求。1軟件維護(hù)的概念1軟件維護(hù)的概念1.3完善性維護(hù)為了滿足新的功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)(perfectivemaintenance)。例如,完善性維護(hù)可能是修改一個(gè)計(jì)算工資的程序,使其增加新的扣除項(xiàng)目;縮短系統(tǒng)的應(yīng)答時(shí)間,使其達(dá)到特定的要求等。4.預(yù)防性維護(hù)預(yù)防性維護(hù)(preventivemaintenance)是指把今天的方法學(xué)用于昨天的系統(tǒng)以滿足明天的需要。也就是說,采用先進(jìn)的軟件工程方法對(duì)需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編碼和測試。1軟件維護(hù)的概念各類維護(hù)占總維護(hù)工作量的比例在整個(gè)軟件維護(hù)階段花費(fèi)的全部工作量中,預(yù)防性維護(hù)只占很小的比例,而完善性維護(hù)占了幾乎一半的工作量。1軟件維護(hù)的概念1軟件維護(hù)的概念維護(hù)工作量在軟件生存期中所占比例軟件維護(hù)活動(dòng)花費(fèi)的工作量占整個(gè)生存期工作量的70%以上(工作量的比例直接反映了成本的比例)

在軟件維護(hù)中,影響維護(hù)工作量的因素主要有以下6種:(1)系統(tǒng)規(guī)模。(2)程序設(shè)計(jì)語言。(3)系統(tǒng)年齡大小。(4)數(shù)據(jù)庫技術(shù)的應(yīng)用水平。(5)所采用的軟件開發(fā)技術(shù)及軟件開發(fā)工程化的程度。(6)其他:如應(yīng)用的類型、數(shù)學(xué)模型、任務(wù)的難度、IF嵌套深度、索引或下標(biāo)數(shù)等,對(duì)維護(hù)工作量都有影響。影響維護(hù)工作量的因素

1軟件維護(hù)的概念

根據(jù)影響軟件維護(hù)工作量的各種因素,針對(duì)3種典型維護(hù),JamesMartin等提出了一些策略,以控制維護(hù)成本。1.改正性維護(hù)應(yīng)用一些諸如數(shù)據(jù)庫管理系統(tǒng)、軟件開發(fā)環(huán)境、程序自動(dòng)生成系統(tǒng)和高級(jí)(第四代)語言等新技術(shù)可大大提高可靠性,并減少進(jìn)行改正性維護(hù)的需要。此外,還可考慮利用應(yīng)用軟件包、防錯(cuò)性程序設(shè)計(jì)、通過周期性維護(hù)審查等策略。軟件維護(hù)的策略

1軟件維護(hù)的概念2.適應(yīng)性維護(hù)這一類的維護(hù)不可避免,但可以采用以下策略加以控制。(1)在配置管理時(shí),把硬件、操作系統(tǒng)和其他相關(guān)環(huán)境因素的可能變化考慮在內(nèi),可以減少某些適應(yīng)性維護(hù)的工作量。(2)把與硬件、操作系統(tǒng),以及其他外圍設(shè)備有關(guān)的程序歸到特定的程序模塊中。可把因環(huán)境變化而必須修改的程序局部于某些程序模塊之中。1軟件維護(hù)的概念1軟件維護(hù)的概念2.適應(yīng)性維護(hù)(3)使用內(nèi)部程序列表、外部文件,以及處理的例行程序包,可為維護(hù)時(shí)修改程序提供方便。(4)使用面向?qū)ο蠹夹g(shù),增強(qiáng)軟件系統(tǒng)的穩(wěn)定性,易于修改和移植。3.完善性維護(hù)利用前兩類維護(hù)中列舉的方法,也可以減少這一類維護(hù)。特別是數(shù)據(jù)庫管理系統(tǒng)、程序生成器、應(yīng)用軟件包,可減少系統(tǒng)或程序員的維護(hù)工作量。此外,建立軟件系統(tǒng)的原型,把它在實(shí)際系統(tǒng)開發(fā)之前提供給用戶。用戶通過研究原型,進(jìn)一步完善他們的功能要求,可以減少以后完善性維護(hù)的需要。1軟件維護(hù)的概念農(nóng)業(yè)物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)施項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)軟件過程(SoftwareProcedure)是指人們開發(fā)和維護(hù)軟件及其相關(guān)產(chǎn)品所采取的一系列活動(dòng)。軟件工程活動(dòng)主要分成三大類:開發(fā)類、管理類和過程類,韓萬江老師將這三類活動(dòng)稱為“軟件工程的三線索”。軟件產(chǎn)品的質(zhì)量主要取決于產(chǎn)品開發(fā)和維護(hù)的軟件過程的質(zhì)量。管理過程改進(jìn)過程開發(fā)過程項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)1軟件質(zhì)量管理及質(zhì)量保證一、軟件質(zhì)量管理1983年,ANSI/IEEESTD729標(biāo)準(zhǔn)給出的軟件質(zhì)量的定義是:軟件產(chǎn)品滿足規(guī)定的和隱含的與需求能力有關(guān)的全部特征和特性。軟件質(zhì)量是軟件的生命,貫穿于整個(gè)軟件生存周期之中,直接影響軟件的使用與維護(hù),甚至關(guān)系到軟件項(xiàng)目的成敗。軟件工程的最高目標(biāo)就是產(chǎn)生高質(zhì)量的軟件。軟件質(zhì)量可看成由以下3部分構(gòu)成:1)軟件產(chǎn)品的質(zhì)量2)軟件開發(fā)過程的質(zhì)量3)軟件商業(yè)環(huán)境質(zhì)量項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)1軟件質(zhì)量管理及質(zhì)量保證一、軟件質(zhì)量管理軟件質(zhì)量管理著重于確定軟件產(chǎn)品的質(zhì)量目標(biāo)、制定達(dá)到這些目標(biāo)的計(jì)劃,并監(jiān)控及調(diào)整軟件計(jì)劃、軟件工作產(chǎn)品、活動(dòng)及質(zhì)量目標(biāo)以滿足最終用戶對(duì)高質(zhì)量產(chǎn)品的需要和期望。為更好實(shí)現(xiàn)軟件的質(zhì)量管理,一般按照以下3個(gè)步驟實(shí)施:首先,制定項(xiàng)目的質(zhì)量計(jì)劃;其次,對(duì)軟件開發(fā)過程進(jìn)行技術(shù)評(píng)審、測試和缺陷跟蹤,以提供技術(shù)上的質(zhì)量保證;最后,檢查整個(gè)過程,并進(jìn)行有效的過程改進(jìn),以便在以后的項(xiàng)目中進(jìn)一步提高軟件質(zhì)量。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)1軟件質(zhì)量管理及質(zhì)量保證二、軟件質(zhì)量保證軟件質(zhì)量保證(SQA-SoftwareQualityAssurance)是一種應(yīng)用于整個(gè)軟件工程過程的保護(hù)性活動(dòng),通過建立一套有計(jì)劃、系統(tǒng)化的方法,來向管理層保證按照擬定的標(biāo)準(zhǔn)、步驟和方法進(jìn)行實(shí)踐能夠確定、達(dá)到和維護(hù)需要的軟件質(zhì)量,使軟件過程對(duì)于管理人員是可見的。軟件質(zhì)量保證的目標(biāo)是以獨(dú)立審查方式,從第三方的角度監(jiān)控軟件開發(fā)任務(wù)的執(zhí)行。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)1軟件質(zhì)量管理及質(zhì)量保證二、軟件質(zhì)量保證軟件質(zhì)量保證的目標(biāo)主要包括以下四個(gè)方面:1)通過監(jiān)控軟件開發(fā)過程來保證產(chǎn)品質(zhì)量;2)保證開發(fā)出來的軟件和軟件開發(fā)過程符合相應(yīng)標(biāo)準(zhǔn)與規(guī)程;3)保證軟件產(chǎn)品、軟件過程中存在的不合理問題得到處理,必要時(shí)將問題反映給高級(jí)管理者;4)確保項(xiàng)目組制定的計(jì)劃、標(biāo)準(zhǔn)和規(guī)程適合項(xiàng)目組需要,同時(shí)滿足評(píng)審和審計(jì)需要;項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)2軟件過程管理軟件過程的管理是指對(duì)軟件產(chǎn)品及對(duì)強(qiáng)化軟件系統(tǒng)的開發(fā)、維護(hù)和支持所涉及的工作過程進(jìn)行管理。軟件過程管理的職責(zé)包括:定義過程、度量過程、控制過程和改進(jìn)過程。為保證軟件項(xiàng)目質(zhì)量,軟件過程管理中,要開展的工作主要分為3類:1)計(jì)劃及計(jì)劃管理,包括:項(xiàng)目計(jì)劃及計(jì)劃制定;項(xiàng)目估算;風(fēng)險(xiǎn)分析及風(fēng)險(xiǎn)管理;進(jìn)度管理;計(jì)劃跟蹤與監(jiān)督。2)資源管理,包括:人員管理、成本管理。3)成果及要求管理,包括:需求管理、配置管理、質(zhì)量管理。34項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)2軟件過程管理1、軟件項(xiàng)目管理廣義的軟件項(xiàng)目管理涉及對(duì)人員、過程、產(chǎn)品和項(xiàng)目本身等管理過程中發(fā)生的事件的計(jì)劃和監(jiān)控。實(shí)際上,軟件項(xiàng)目管理就是要管理好項(xiàng)目的內(nèi)容、花費(fèi)的時(shí)間(進(jìn)度)以及花費(fèi)的代價(jià)(規(guī)模成本),其他的事情都是圍繞這三件事情展開的。為此首先需要制定一個(gè)好的項(xiàng)目計(jì)劃,然后控制和監(jiān)督好該計(jì)劃的執(zhí)行。對(duì)于具體的軟件項(xiàng)目,一般方法是按照縱向和橫向(即空間和時(shí)間)兩個(gè)方向進(jìn)行分解,然后軟件工程管理針對(duì)每個(gè)階段都有相應(yīng)的管理策略,以保證項(xiàng)目計(jì)劃的有效實(shí)施。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)2軟件過程管理2、軟件配置管理軟件配置管理是軟件項(xiàng)目管理的一個(gè)重要組成部分。軟件配置管理的目的是為某個(gè)過程或某個(gè)項(xiàng)目的軟件項(xiàng)建立和保持完整性,以便相關(guān)方能夠使用它。軟件配置管理的對(duì)象稱為軟件配置項(xiàng),包括:與合同、過程、計(jì)劃和產(chǎn)品有關(guān)的文檔及數(shù)據(jù);源代碼、目標(biāo)代碼和可執(zhí)行代碼;相關(guān)的產(chǎn)品,如軟件工具、庫內(nèi)的可復(fù)用軟件、外購軟件等。軟件配置管理應(yīng)該完成的任務(wù):配置標(biāo)識(shí)、版本管理、變更管理、配置審核和配置報(bào)告。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)3軟件過程改進(jìn)軟件過程改進(jìn)是為了更有效的達(dá)到優(yōu)化軟件過程的目的而實(shí)施的改善或改變其軟件過程的系列活動(dòng)。成功的軟件過程改進(jìn)可以提高效率、減少錯(cuò)誤、保證進(jìn)度從而提高軟件產(chǎn)品質(zhì)量。目前流行的主要的過程改進(jìn)模型或軟件工程規(guī)范如下:SW-CMM&CMMIPSP&TSPISO9000項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)3軟件過程改進(jìn)1、SW-CMM&CMMI軟件能力成熟度模型CMM(CapabilityMaturityModel)是由美國卡內(nèi)基-梅隆大學(xué)軟件工程研究所SEI受美國國防部委托制定的評(píng)估軟件能力與成熟度,用于軟件過程的改良和評(píng)估的模型,于1991年發(fā)布并發(fā)展成為系列標(biāo)準(zhǔn)模型,為軟件機(jī)構(gòu)提供了一條從混亂的、不成熟的軟件過程向成熟的、有紀(jì)律的軟件過程改進(jìn)的途徑。CMM模型與軟件生存周期無關(guān),也與所采用的開發(fā)技術(shù)無關(guān),便于確定軟件組織的現(xiàn)有過程能力和查找出軟件質(zhì)量及過程改進(jìn)方面的最關(guān)鍵的問題,從而為選擇過程改進(jìn)戰(zhàn)略提供指南。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)3軟件過程改進(jìn)1、SW-CMM&CMMICMM為軟件企業(yè)的過程能力提供了一個(gè)階梯式的進(jìn)化框架,將軟件過程改進(jìn)的進(jìn)化步驟從低到高組織成5個(gè)成熟度等級(jí),每一個(gè)成熟度等級(jí)為連續(xù)改進(jìn)提供一個(gè)臺(tái)階。紀(jì)律化的過程標(biāo)準(zhǔn)一致的過程可預(yù)測的過程不斷改進(jìn)的過程初試級(jí)可重復(fù)級(jí)已定義級(jí)已管理級(jí)優(yōu)化級(jí)成熟度等級(jí)1級(jí)2級(jí)3級(jí)4級(jí)5級(jí)圖2-10CMM模型的5個(gè)成熟級(jí)項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)3軟件過程改進(jìn)1、SW-CMM&CMMI初始級(jí)(Initial):軟件過程的特點(diǎn)是無秩序的,有時(shí)甚至是混亂的。軟件過程定義幾乎處于無章法可循的狀態(tài),軟件產(chǎn)品所取得的成功往往依賴于個(gè)人或小組的努力??芍貜?fù)級(jí)(Repeatable):已建立了基本的項(xiàng)目管理過程來跟蹤成本、進(jìn)度和功能特性。制定了必要的過程紀(jì)律,能重復(fù)早先類似應(yīng)用項(xiàng)目取得的成功。已定義級(jí)(Defined):已將管理和工程活動(dòng)兩方面的軟件過程文檔化、標(biāo)準(zhǔn)化,并綜合成該機(jī)構(gòu)的標(biāo)準(zhǔn)軟件過程。所有項(xiàng)目均使用與實(shí)際情況相吻合的、經(jīng)批準(zhǔn)、剪裁的標(biāo)準(zhǔn)軟件過程來開發(fā)和維護(hù)軟件。已管理級(jí)(Managed):收集對(duì)軟件過程和產(chǎn)品質(zhì)量的詳細(xì)度量標(biāo)準(zhǔn),對(duì)軟件過程和產(chǎn)品都有定量的、有效的認(rèn)識(shí)理解和控制。優(yōu)化級(jí)(Optimizing):通過對(duì)來自過程、新概念和新技術(shù)等方面的各種有用信息的有效分析,能夠不斷地、持續(xù)性地對(duì)過程進(jìn)行改進(jìn)。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)3軟件過程改進(jìn)1、SW-CMM&CMMI從CMM衍生出了一些改善模型,構(gòu)成了一個(gè)CMM族:(1)SW-CMM(SoftwareCMM)軟件CMM(2)SE-CMM(SystemEngineeringCMM)系統(tǒng)工程CMM(3)SA-CMM(SoftwareAcquisitionCMM)軟件采購CMM(4)IPT-CMM(IntegratedProductTeamCMM)集成產(chǎn)品群組CMM(5)P-CMM(PeopleCMM)人力資源能力成熟度模型。CMM多種模型的存在給使用帶來方便的同時(shí),也帶來了許多問題。美國國防部提出CMMI項(xiàng)目,目的是為了解決怎么保持這些模式之間的協(xié)調(diào)。2001年12月SEI正式發(fā)布了CMMI1.1版本;2010年10月28日,SEI發(fā)布了CMMI1.3版到目前為止CMMI包括前面提及的四個(gè)領(lǐng)域:軟件工程(SW-CMM)、系統(tǒng)工程(SE-CMM)、集成的產(chǎn)品和過程開發(fā)(IPPD-CMM)和采購(SS-CMM)。3軟件過程改進(jìn)2、PSP&TSP如果沒有個(gè)體過程意識(shí)和過程能力支持,就不可能提高能力成熟度,1995年提出PSP。PSP可以為基于個(gè)體和小型群組軟件過程的優(yōu)化提供具體而有效的途徑,例如如何制定計(jì)劃、如何控制質(zhì)量、如何與其他人相互合作等;在軟件設(shè)計(jì)階段,PSP的著眼點(diǎn)在于軟件缺陷的預(yù)防,其具體辦法是強(qiáng)化設(shè)計(jì)結(jié)束準(zhǔn)則,而不是設(shè)計(jì)方法的選擇。PSP保障軟件產(chǎn)品質(zhì)量的一個(gè)重要途徑是提高設(shè)計(jì)質(zhì)量。3軟件過程改進(jìn)2、PSP&TSPTSP提供如何提高軟件開發(fā)小組本身的知識(shí)和技能的方法,于1996年提出。TSPi專門用于開發(fā)小組。TSP用于指導(dǎo)項(xiàng)目組中的成員如何有效地規(guī)劃和管理所面臨的項(xiàng)目開發(fā)任務(wù),并告訴管理人員如何指導(dǎo)軟件開發(fā)隊(duì)伍始終以最佳狀態(tài)來完成工作。TSP實(shí)施集體管理與自己管理相結(jié)合的原則,最終目的在于指導(dǎo)一切人員如何在最少的時(shí)間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品。實(shí)施TSP的先決條件有3條:首先,需要有高層主管和各級(jí)經(jīng)理的支持,以取得必要的資源;其次,項(xiàng)目組開發(fā)人員需要經(jīng)過PSP的培訓(xùn)并有按TSP工作的愿望和熱情;第三,整個(gè)單位在總體上應(yīng)處于CMM二級(jí)以上。3軟件過程改進(jìn)3、ISO9000ISO9000是國際標(biāo)準(zhǔn)化組織ISO制定的世界上第一套質(zhì)量管理和質(zhì)量保證標(biāo)準(zhǔn),主要目的是為了滿足國際貿(mào)易中對(duì)質(zhì)量管理和質(zhì)量保證需要有共同語言和共同準(zhǔn)則的需要。ISO自1987年首次發(fā)布ISO9000系列標(biāo)準(zhǔn)以來,分別在1994年和2000年對(duì)標(biāo)準(zhǔn)進(jìn)行了兩次修訂。我國于1994年將ISO9000標(biāo)準(zhǔn)等同采用為國家標(biāo)準(zhǔn)。1994年版ISO標(biāo)準(zhǔn)偏重于制造業(yè)的使用,軟件及服務(wù)類產(chǎn)品針對(duì)性不強(qiáng)。2000版在1994版的基礎(chǔ)上,從總體結(jié)構(gòu)和原則到具體的技術(shù)內(nèi)容做了全面的修改,克服了1994版ISO標(biāo)準(zhǔn)偏重于制造業(yè)的傾向。項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件開發(fā)過程管理及改進(jìn)農(nóng)業(yè)物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)施項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件維護(hù)----2軟件維護(hù)活動(dòng)2軟件維護(hù)活動(dòng)軟件維護(hù)申請(qǐng)報(bào)告

所有軟件維護(hù)申請(qǐng)應(yīng)按規(guī)定的方式提出。軟件維護(hù)組織通常提供維護(hù)申請(qǐng)報(bào)告(maintenancerequestform,MRF),或稱軟件問題報(bào)告,由申請(qǐng)維護(hù)的用戶填寫。如果遇到一個(gè)錯(cuò)誤,用戶必須完整地說明產(chǎn)生錯(cuò)誤的情況,包括輸入數(shù)據(jù)、錯(cuò)誤清單以及其他有關(guān)材料。如果申請(qǐng)的是適應(yīng)性維護(hù)或完善性維護(hù),用戶必須提出一份修改說明書,列出所有希望的修改。維護(hù)申請(qǐng)報(bào)告將由維護(hù)管理員和系統(tǒng)監(jiān)督員來研究處理。

維護(hù)申請(qǐng)報(bào)告是由軟件組織外部提交的文檔,它是計(jì)劃維護(hù)工作的基礎(chǔ)。軟件組織內(nèi)部應(yīng)相應(yīng)地做出軟件修改報(bào)告(softwarechangereport,SCR),指明:●所需修改變動(dòng)的性質(zhì);●申請(qǐng)修改的優(yōu)先級(jí);●為滿足某個(gè)維護(hù)申請(qǐng)報(bào)告,所需的工作量;●預(yù)計(jì)修改后的狀況。軟件修改報(bào)告應(yīng)提交修改負(fù)責(zé)人,經(jīng)批準(zhǔn)后才能開始進(jìn)一步安排維護(hù)工作。2軟件維護(hù)活動(dòng)

軟件維護(hù)工作流程如下圖所示。2軟件維護(hù)活動(dòng)軟件維護(hù)工作流程

在每次軟件維護(hù)任務(wù)完成后,最好進(jìn)行一次情況評(píng)審,對(duì)以下問題做一總結(jié):在目前情況下,設(shè)計(jì)、編碼、測試中的哪一方面可以改進(jìn)?哪些維護(hù)資源應(yīng)該有,但沒有?工作中主要的或次要的障礙是什么?從維護(hù)申請(qǐng)的類型來看是否應(yīng)當(dāng)有預(yù)防性維護(hù)?情況評(píng)審對(duì)將來的維護(hù)工作如何進(jìn)行會(huì)產(chǎn)生重要的影響,并可為軟件機(jī)構(gòu)的有效管理提供重要的反饋信息。2軟件維護(hù)活動(dòng)2軟件維護(hù)活動(dòng)維護(hù)檔案記錄

內(nèi)容包括程序名稱、源程序語句條數(shù)、機(jī)器代碼指令條數(shù)、所用的程序設(shè)計(jì)語言、程序安裝的日期、程序安裝后的運(yùn)行次數(shù)、與程序安裝后運(yùn)行次數(shù)有關(guān)的處理故障次數(shù)、程序改變的層次及名稱、修改程序所增加的源程序語句條數(shù)、修改程序所減少的源程序語句條數(shù)、每次修改所付出的“人時(shí)”數(shù)、修改程序的日期、軟件維護(hù)人員的姓名、維護(hù)申請(qǐng)報(bào)告的名稱、維護(hù)類型、維護(hù)開始時(shí)間和維護(hù)結(jié)束時(shí)間、花費(fèi)在維護(hù)上的累計(jì)“人時(shí)”數(shù)、維護(hù)工作的凈收益等。對(duì)每項(xiàng)維護(hù)任務(wù)都應(yīng)該收集上述數(shù)據(jù)。

評(píng)價(jià)維護(hù)活動(dòng)可參考的度量值有:每次程序運(yùn)行時(shí)的平均出錯(cuò)次數(shù);花費(fèi)在每類維護(hù)上的總“人時(shí)”數(shù);每個(gè)程序、每種語言、每種維護(hù)類型的程序平均修改次數(shù);因?yàn)榫S護(hù),增加或刪除每個(gè)源程序語句所花費(fèi)的平均“人時(shí)”數(shù);用于每種語言的平均“人時(shí)”數(shù);維護(hù)申請(qǐng)報(bào)告的平均處理時(shí)間;各類維護(hù)申請(qǐng)的百分比。2軟件維護(hù)活動(dòng)維護(hù)評(píng)價(jià)

農(nóng)業(yè)物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)施項(xiàng)目六物聯(lián)網(wǎng)應(yīng)用軟件設(shè)計(jì)6.5軟件維護(hù)----3程序修改的步驟及修改的副作用

為了正確、有效地進(jìn)行程序修改,需要經(jīng)歷3個(gè)步驟:分析和理解程序、實(shí)施修改以及重新驗(yàn)證程序。3程序修改的步驟及修改的副作用分析和理解程序

經(jīng)過分析,全面、準(zhǔn)確、迅速地理解程序是決定維護(hù)成敗和質(zhì)量好壞的關(guān)鍵。在這方面,軟件的可理解性和文檔的質(zhì)量非常重要。為此必須:(1)研究程序的使用環(huán)境及有關(guān)資料,盡可能得到更多的背景信息;(2)理解程序的功能和目標(biāo);(3)掌握程序的結(jié)構(gòu)信息,即從程序中細(xì)分出若干結(jié)構(gòu)成分,如程序系統(tǒng)結(jié)構(gòu)、控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和輸入/輸出結(jié)構(gòu)等;(4)了解數(shù)據(jù)流信息,即所涉及的數(shù)據(jù)來自何處,在哪里被使用;(5)了解控制流信息,即執(zhí)行每條路徑的結(jié)果;(6)如果設(shè)計(jì)存在,則可利用它們來幫助畫出結(jié)構(gòu)圖和高層流程圖;(7)理解程序的操作(使用)要求。3程序修改的步驟及修改的副作用

為了容易地理解程序,要求自頂向下地理解現(xiàn)有源程序的程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),為此可采用如下幾種方法。(1)分析程序結(jié)構(gòu)圖。(2)數(shù)據(jù)跟蹤。(3)控制跟蹤。可采用符號(hào)執(zhí)行或?qū)嶋H動(dòng)態(tài)跟蹤的方法,了解數(shù)據(jù)是如何從一個(gè)輸入源到達(dá)輸出點(diǎn)的。(4)在分析的過程中,應(yīng)充分閱讀和使用源程序清單和文檔,分析現(xiàn)有文檔的合理性。(5)充分使用由編譯程序或匯編程序提供的交叉引用表、符號(hào)表,以及其他有用的信息。(6)如有可能,爭取參加開發(fā)工作。3程序修改的步驟及修改的副作用

對(duì)程序的修改,必須事先做出計(jì)劃,有準(zhǔn)備地、周密有效地實(shí)施修改。3.1設(shè)計(jì)程序的修改計(jì)劃

程序的修改計(jì)劃要考慮人員和資源的安排。修改計(jì)劃的內(nèi)容主要包括以下幾項(xiàng):(1)規(guī)格說明信息:數(shù)據(jù)修改、處理修改、作業(yè)控制語言修改、系統(tǒng)之間接口的修改等。(2)維護(hù)資源:新程序版本、測試數(shù)據(jù)、所需的軟件系統(tǒng)、計(jì)算機(jī)時(shí)間等。3程序修改的步驟及修改的副作用修改程序

(3)人員:程序員、用戶相關(guān)人員、技術(shù)支持人員、廠家聯(lián)系人、數(shù)據(jù)錄入員等。(4)提供:紙質(zhì)、計(jì)算機(jī)媒體等。針對(duì)以上每一項(xiàng),要說明必要性、從何處著手、是否接受、日期等。通常,可采用自頂向下的方法,在理解程序的基礎(chǔ)上做如下工作:(1)研究程序的各個(gè)模塊、模塊的接口及數(shù)據(jù)庫,從全局的觀點(diǎn)提出修改計(jì)劃。(2)依次把要修改的、以及那些受修改影響的模塊和數(shù)據(jù)結(jié)構(gòu)分離出來。3程序修改的步驟及修改的副作用(3)詳細(xì)地分析要修改的,以及那些受變更影響的模塊和數(shù)據(jù)結(jié)構(gòu)的內(nèi)部細(xì)節(jié),設(shè)計(jì)修改計(jì)劃,標(biāo)明新邏輯及要改動(dòng)的現(xiàn)有邏輯。(4)向用戶提供回避措施。用戶的某些業(yè)務(wù)因軟件中發(fā)生問題而中斷,為不讓系統(tǒng)長時(shí)間停止運(yùn)行,需把問題局部化,在可能的范圍內(nèi)繼續(xù)開展業(yè)務(wù)。3程序修改的步驟及修改的副作用3.2

修改代碼,以適應(yīng)變化(1)正確、有效地編寫修改代碼;(2)要謹(jǐn)慎地修改程序,盡量保持程序的風(fēng)格及格式,要在程序清單上注明改動(dòng)的指令;(3)不要匆忙刪除程序語句,除非完全肯定它是無用的;(4)不要試圖共用程序中已有的臨時(shí)變量或工作區(qū),為了避免沖突或混淆用途,應(yīng)自行設(shè)置自己的變量;(5)插入錯(cuò)誤檢測語句;(6)保持詳細(xì)的維護(hù)活動(dòng)和維護(hù)結(jié)果記錄;(7)如果程序結(jié)構(gòu)混亂,修改受到干擾,可拋棄程序重新編寫。3程序修改的步驟及修改的副作用

所謂程序修改的副作用是指因修改軟件而造成的錯(cuò)誤或其他不希望發(fā)生的情況,有以下3種副作用:(1)修改代碼的副作用在使用程序設(shè)計(jì)語言修改源代碼時(shí),都可能引入新的錯(cuò)誤。例如,刪除或修改一個(gè)子程序、刪除或修改一個(gè)標(biāo)號(hào)、刪除或修改一個(gè)標(biāo)識(shí)符、改變程序代碼的時(shí)序關(guān)系、改變占用存儲(chǔ)的大小、改變邏輯運(yùn)算符、修改文件的打開或關(guān)閉、改進(jìn)程序的執(zhí)行效率,以及把設(shè)計(jì)上的改變翻譯成代碼的改變、為邊界條件的邏輯測試做出改變時(shí),都容易引入錯(cuò)誤。3程序修改的步驟及修改的副作用修改程序的副作用及其控制

(2)修改數(shù)據(jù)的副作用在修改數(shù)據(jù)結(jié)構(gòu)時(shí),有可能造成軟件設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)不匹配,因而導(dǎo)致軟件出錯(cuò)。修改數(shù)據(jù)的副作用是修改軟件信息結(jié)構(gòu)導(dǎo)致的結(jié)果。例如,在重新定義局部的或全局的常量、重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論