版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.個人軟件過程個人軟件過程PSP是一種可用于控制、管理和改進個人工作方式的自我持續(xù)改進過程,是一個包括軟件開發(fā)表格、指南和規(guī)程的構(gòu)造化框架。PSP與詳細的技術(shù)程序設計語言、工具或者設計方法相對獨立,但其原那么可以應用到幾乎任何的軟件工程任務之中。它可以說明個體軟件過程的原那么、 幫助軟件工程師作出準確的方案、確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟、建立度量個體軟件過程改善的基準、確定過程的改變對軟件工程師的才能的影響。l 概述隨著軟件工程知識的普及,要開發(fā)高質(zhì)量的軟件,必須改進軟件消費的過程。目前,業(yè)界公認由CMU/SEI開發(fā)的軟件才能成熟度模型SW-CMM是當前最好的軟件過程,并且CMM已
2、經(jīng)成為事實上的軟件過程工業(yè)標準。但是CMM雖然提供了一個有力的軟件過程改進框架,卻只告訴我們應該做什么,而沒有告訴我們應該怎樣做,并未提供有關(guān)實現(xiàn)關(guān)鍵過程域所需要的詳細知識和技能。為了彌補這個欠缺,Humphrey又主持開發(fā)了個體軟件過程Personal Software Process,PSP。在CMM1.1版本的18個關(guān)鍵過程域中有12個與PSP有關(guān),據(jù)統(tǒng)計,軟件工程開發(fā)本錢的70%取決于軟件開發(fā)人員個人的技能、經(jīng)歷和工作習慣。因此,一個單位的軟件開發(fā)人員如能承受PSP培訓,對該單位軟件才能成熟度的晉級是一個有力的保證。CMM側(cè)重于軟件企業(yè)中有關(guān)軟件過程的宏觀管理,面向軟件開發(fā)單位,PSP
3、那么側(cè)重于企業(yè)中有關(guān)軟件過程的微觀優(yōu)化,面向軟件開發(fā)人員。二者互相支持,互相補充,缺一不可。按照PSP規(guī)程,改進軟件過程的步驟首先需要明確質(zhì)量目的,也就是軟件將要在功能和性能上滿足的要求和用戶潛在的需求。接著就是度量產(chǎn)品質(zhì)量,有了目的還不行,目的只是一個原那么性的東西,還不便于實際操作和判斷,因此,必須對目的進展分解和度量,使軟件質(zhì)量可以測量。然后就是理解當前過程,查找問題,并對過程進展調(diào)整。最后應用調(diào)整后的過程,度量理論結(jié)果,將結(jié)果與目的做比較,找出差距,分析原因,對軟件過程進展持續(xù)改進。就像CMM為軟件企業(yè)的才能提供一個階梯式的進化框架一樣,PSP為個體的才能也提供了一個階梯式的進化框架。
4、以循序漸進的方法介紹過程的概念,每一級別都包含了更低一級別中的所有元素,并增加了新的元素。這個進化框架是學習PSP過程根本概念的好方法,它賦予軟件人員度量和分析工具,使其清楚地認識到自己的表現(xiàn)和潛力,從而可以進步自己的技能和程度。l 個體度量過程PSP0和PSP0.1PSP0的目的是建立個體過程基線,通過這一步,學會使用PSP的各種表格采集過程的有關(guān)數(shù)據(jù),此時執(zhí)行的是該軟件開發(fā)單位的當前過程,通常包括方案、開發(fā)包括設計、編碼、編譯和測試以及后置處理三個階段,并要作一些必要的試題,如測定軟件開發(fā)時間,按照選定的缺陷類型標準、度量引入的缺陷個數(shù)和排除的缺陷個數(shù)等,用作為測量在PSP的過程中進步的基
5、準。PSP0.1增加了編碼標準、程序規(guī)模度量和過程改善建議等三個關(guān)鍵過程域,其中,過程改善建議表格用于隨時記錄過程中存在的問題、解決問題的措施以及改進過程的方法,以進步軟件開發(fā)人員的質(zhì)量意識和過程意識。應該強調(diào)指出,在PSP0階段必須理解和學會使用表格進展規(guī)劃和度量的技術(shù)和經(jīng)歷,以準確地滿足期望的需求,其中最重要的是要保持數(shù)據(jù)的一致性、有用性和簡潔性。l 個體規(guī)劃過程PSP1和PSP1.1PSP1的重點是個體方案,引入了基于估計的方案方法PROBE,用自己的歷史數(shù)據(jù)來預測新程序的大小和需要的開發(fā)時間,并使用線性回歸方法計算估計參數(shù),確定置信區(qū)間以評價預測的可信程度。PSP1.1增加了對任務和進
6、度的規(guī)劃。在PSP1階段應該學會編制工程開發(fā)方案,這不僅對承擔大型軟件的開發(fā)非常重要,即使是開發(fā)小型軟件也必不可少。因為,只有對自己的才能有客觀的評價,才能做出更加準確的方案,才能實事求是地承受和完成客戶委托的任務。l 個體質(zhì)量管理過程PSP2和PSP2.1PSP2的重點是個體質(zhì)量管理,根據(jù)程序的缺陷來建立檢測表,按照檢測表進展設計復查和代碼復查有時也稱代碼走查,以便及早發(fā)現(xiàn)缺陷,使修復缺陷的代價最小。隨著個人經(jīng)歷和技術(shù)的積累,還應學會怎樣改進檢測表以適應自己的要求。PSP2.1那么闡述設計過程和設計模板,介紹設計方法,并提供了設計模板、但PSP并不強調(diào)選用什么設計方法,而強調(diào)設計完備性準那么
7、和設計驗證技術(shù)。施行PSP的一個重要目的就是學會在開發(fā)軟件的早期實際地、客觀地處理由于人們的忽略所造成的程序缺陷問題。人們都期盼獲得高質(zhì)量的軟件,但是只有高素質(zhì)的軟件開發(fā)人員并遵循適宜的軟件過程,才能開發(fā)出高質(zhì)量的軟件,因此,PSP2引入并著重強調(diào)設計復查和代碼復查技術(shù),一個合格的軟件開發(fā)人員必須掌握這兩項根本技術(shù)。l 個體循環(huán)過程PSP3PSP3的目的是把個體開發(fā)小程序所能到達的消費效率和消費質(zhì)量,延伸到大型程序。其方法是采用螺旋式上升過程,即迭代增量式開發(fā)方法:首先把大型程序分解成小的模塊,然后對每個模塊按照PSP2.1所描繪的過程進展開發(fā),最后把這些模塊逐步集成為完好的軟件產(chǎn)品。應用PS
8、P3開發(fā)大型軟件系統(tǒng),必須采用增量式開發(fā)方法,并要求每一個增量都具有很高的質(zhì)量。在這樣的前提下,在新一輪開發(fā)循環(huán)中,可以采用回歸測試的方法,集中力量考察新增加的這個這些增量是否符合要求。因此,要求在PSP2中進展嚴格的設計復查和代碼復查,并在PSP2.1中努力遵循設計完畢準那么。從對個體軟件過程框架的概要描繪中,可以清楚地看到,如何作好工程規(guī)劃和如何保證產(chǎn)品質(zhì)量,是任何軟件開發(fā)過程中最根本的問題。PSP可以幫助軟件工程師在個人的根底上運用過程的原那么,借助于PSP提供的一些度量和分析工具,理解自己的技能程度,控制和管理自己的工作方式,使自己日常工作的評估、方案和預測更加準確、更加有效,進而改進
9、個人的工作表現(xiàn),進步個人的工作質(zhì)量和產(chǎn)量,積極而有效地參與高級管理人員和過程人員推動的組織范圍的軟件工程過程改進。PSP軟件工程規(guī)程為軟件工程是提供了開展個人技能的構(gòu)造化框架和必須掌握的方法。在軟件行業(yè),開發(fā)人員假設不經(jīng)過PSP培訓,就只能靠在開發(fā)中通過理論逐步掌握這些技能和方法,這不僅周期很長,要付出很大的代價,而且有越來越大的風險。 培訓的方式有很多,既可以到專門的學校進修,也可以進展自學和參加培訓班,例如:CMM網(wǎng)校中就有個體軟件過程的課程。l 過程改進PSP是一個需要逐步改進的過程。首先,要通過測量來診斷一個問題。然后,必須客觀的分析測量的數(shù)據(jù),最后,也是最重要的,就是自身的變化。定義
10、測量方法不是件容易的事情,但它總是可能的。首先定義測量方法。規(guī)定了測量方法后,就必須搜集和分析數(shù)據(jù)。假設需要作些改進,接下來就要分析工作過程,看看什么地方需要改進。最后要想真正的改進,必須實在做出改進。僅僅進展測量并不會產(chǎn)生什么進步,僅僅靠努力也不會有什么進步。在很大程度上工作方式?jīng)Q定了所得到的結(jié)果。假設還是按照老方法工作,得到的結(jié)果還會是老樣子。l 時間管理人們很可能像上星期那樣安排這星期的時間。當然,隨著工作的不同,也有很多例外的情況。為了制定實在可行的方案,必須對所用的時間進展跟蹤。假設問上周的時間是怎么利用的,一般人都認為很容易所出每項工作花了多少時間,但是當看到實際的數(shù)據(jù)時,很可能感
11、到非常驚訝:花在編程上的時間比估計的少得多,花在消遣的時間比預期的多得多;樂意做的事情做的特別快,用的時間也似乎特別少,令人頭疼的事情占用的時間似乎比實際花費的時間多得多。要搞清楚時間都用在什么地方,必須對時間進展跟蹤,保存一份準確的記錄。為了檢查時間估計和方案的準確性,必須把它們寫成文檔并在今后與實際情況進展比較。做方案是一種技能,學習制定好的方案,第一步就是要先做方案,然后把該方案寫下來,以便今后與實際數(shù)據(jù)相比較。為了制定出更準確的方案,需要知道以前的方案中存在哪些錯誤,哪些地方可以進展改進。當按照方案進展工作時,記錄下所花費的時間。通過比較文檔化的方案和實際的結(jié)果,就可以發(fā)現(xiàn)方案中存在哪
12、些錯誤以及如何改進制作方案的過程。制定準確方案的關(guān)鍵就是比較,然后就會知道如何才能制定出更好的方案。為了管理好時間,首先制定時間分配方案,然后按照方案去做。制作方案容易,但真正施行方案是困難的。特別開場的時候,按照方案進展工作可能比較困難,你可能會有很多借口,最常見的就是這份方案制作的不好。但只有按照方案去做,你才能知道它的優(yōu)劣。按照方案進展工作有三點好處:第一,理解方案存在哪些問題,有助于更好的方案下一個工程。第二,按照好的方案完成工作。這看起來不重要,但是事實上軟件工程中的許多錯誤都是由于考慮不周、粗心大意或是不注意的小細節(jié)而造成的,按照好的方案工作是防止這些錯誤的最好途徑。另一個更加微妙
13、的好處就是它實際上在改變你的工作方式,有了方案就不用浪費時間去考慮下一步要干什么,它會幫助你把精力集中在所中的事情上,很少分心,從而進步了工作效率。 理解時間的使用情況將主要活動分類。在開場分配時間時,你會發(fā)現(xiàn)大部分時間都用在相對很少的幾個活動上。記錄每項主要活動所花費的時間。堅持記錄時間需要很強的自我約束才能,要想進展準確的記錄,必須記錄下每件主要工作開場和完畢的時間。除非你知道自己實際上用了多少時間,否那么就不可能管理好使用時間的方式。用標準的方法記錄時間必須使用標準的時間日志。因為需要采集的時間數(shù)據(jù)的數(shù)量增加得很快,假設不認真記錄和存儲這些數(shù)據(jù),它們很可能喪失或變得混亂,這樣很不利于查找
14、或?qū)λ鼈冞M展解釋。假設不打算對這些數(shù)據(jù)進展適當?shù)恼?、歸納,就根本不必要去搜集數(shù)據(jù)。以分鐘為測量單位。工程是在完成任務中不連續(xù)工作的時間一般都少于1小時,因此以小時為單位對工作時間進展測量不能提供用以方案和管理工作所需要的詳細數(shù)據(jù),而用分鐘跟蹤時間容易得多。一旦決定進展時間跟蹤,用分鐘作為測量單位將比用小時更恰當。處理中斷時間。采用表2.1跟蹤時間時,一個常見的問題就是中斷。 、聊天、偶爾的煩惱以及必要的休息打斷的次數(shù)多得令人吃驚。中斷的時間不是有效的工作時間,并且變化幅度很大,假設不對它進展測量,實際上就在時間記錄中參加了一個隨機數(shù),也就很難使用時間數(shù)據(jù)來方案和管理時間了。事件日志中的數(shù)據(jù)能
15、幫助你理解工作被打斷的頻率。多數(shù)中斷不僅浪費時間,還會打斷你的思路,導致效率降低和錯誤的產(chǎn)生,因此理解被打斷的頻率有助于進步工作的質(zhì)量和效率。將時間數(shù)據(jù)保存在適宜的地方。記錄時間花費情況值得推薦的方法就是用工程記事本來記錄時間以及其他的事情。對一個軟件專業(yè)人員,工程記事本用處很多,可以記錄時間日志、程序設計方案以及運算結(jié)果,可以作為你所遵循正確的工程施行方案的憑證,可以記錄下腦子里面一閃而過的想法。推薦的方法是從工程記事本的第一頁開場向后記錄主要活動及其所花費的時間,最后一頁開場向前記錄時間日志。記錄主要活動及其所花費的時間,最后一頁開場向前記錄時間日志。周活動總結(jié)表。通過采用時間日志搜集時間
16、數(shù)據(jù)后,你就能漸漸明白自己是如何支配時間的。但是時間日志中的數(shù)據(jù)過于詳細,需要用一種更有用的表格來總結(jié)這些數(shù)據(jù),周活動總結(jié)表可以很好的完成這個任務。當然我們關(guān)心的時間不會只有一周這么短,還需要一段時間內(nèi)在各類任務上花費的平均時間、最大時間和最小時間。因此采用表2.2所示格式。周活動總結(jié)表中的數(shù)據(jù)可以幫助你理解時間都用在那些地方,還可以使用這些書對以后的幾周進展方案。例如,有了這些數(shù)據(jù)就能判斷出一個大的任務所需要的時間可能接近總結(jié)表中的最長時間,而一個簡單的任務需要的時間可能接近最短時間。記錄時間的提示。隨時準備好工程記事本;當偶爾忘了記錄開場時間、完畢事件或中斷時間,憑記憶盡早做出估計;及時總
17、結(jié)記錄的時間數(shù)據(jù)。 制訂方案這里介紹兩種方案:階段方案和產(chǎn)品方案。;應物0901 郭衍束 ( 20090739)如何制定階段方案階段方案是關(guān)于這段時間內(nèi)對時間的安排。為了制定階段方案,必須清楚時間的使用情況。根據(jù)上一章介紹的周活動總結(jié)表,我們就可以跟蹤記錄自己是如何支配時間的。在制訂下一周的方案時,就可以參考最近的周活動總結(jié)表。根據(jù)以前各個任務花費的時間,就能判斷出下一周將在這些任務上花費多少時間。制定這種方案最簡單的方法就是假設將要使用的時間與過去平均使用的時間一樣。一種如何制定產(chǎn)品方案產(chǎn)品方案是關(guān)于制作產(chǎn)品活動期間的時間安排當工程師在工程小組中工作時,就需要方案個人的工作。方案是按期完成承
18、諾的任務的可靠根底,可以在工程師合作開發(fā)產(chǎn)品過程中協(xié)調(diào)他們的工作,可以幫助工程師理解工程的狀態(tài)。做方案是軟件工程師工作的一個重要部分,要成為一個有才干的工程師,就必須知道如何制訂準確的方案,也需要知道如何將這些方案與實際結(jié)果相比較,從而學會制定更好的方案。制定產(chǎn)品方案是可以通過事較為準確的方法就是首先考慮下周將要做的工作內(nèi)容,然后根據(jù)以前的最長和最短時間來估計出一個適宜的時間。件加以進步的一種技能。從如今開場對每個產(chǎn)品制訂方案,產(chǎn)品可以是一個可制定的程序、一個程序設計方案或是一個測試方案,并在以后的工程中繼續(xù)這樣做下去。設定時間分配的優(yōu)先級。有些時間是固定不點的,如每周例會,可以把這些時間稱為
19、固定時間。進展其他活動的時間就是可變動的時間,只要有時間就可以去做這些活動。可變時間又分成需要完成的任務和自行斟酌的任務。需要的活動如編程、讀書,雖然是需要的活動,但它們的時間是可變動的,因為無論如何找出時間都可做這些事情,并且每周在這些活動上所用的時間是不同的。自行斟酌的活動就是要做的所有其他的事情:吃飯、睡覺、社交、觀看電視及其其他的娛樂活動。當作出全面的時間安排時,固定時間的安排是沒有什么問題,最常見的問題是分配可變動的時間。列出需要盡快做的事情,首先努力完成最重要的任務。重要的任務推此時,你會不自覺的為這些任務擔憂,立即處理這些事情常常是更有效的,并且也將給人們帶來一種完成任務的成就感
20、。此外,記住一旦開場了一項令人生畏的任務,就很少會感到象你想象中的那么困難??梢钥紤]從自行斟酌的活動中抽出那些額外的時間,但是這需要合理的安排,對個人是否真愿意按照這時間安排來執(zhí)行。沒有休息的時間會導致人們將管理好時間的想法推翻。做時間安排以及跟蹤時間是重要的,但是時間安排一定要是自己實際愿意承受的。執(zhí)行時間安排表。按照時間安排表工作的才能很大程度上取決于個人的自覺性,但是它還取決于要做的工作的數(shù)量和它們的優(yōu)先次序。意料不到的時間是生活中很自然并且是很正常的一部分,特別是在軟件工程中。危機常常會打破人們的方案,因此不得不作出調(diào)整。在第一次使用時間安排表時,可能會感到它不是很有用,這是正常的,不
21、要因為第一次沒有起作用就放棄對時間安排的過程,而是要考慮所發(fā)生的事情,看看是否存在一些不可能再發(fā)生的反常時間、或者存在對有正常事件引起人而意外花費了很多時間?假設是緊急的情況,不必對時間安排做大的調(diào)整,下一周再試著用它,然后復查結(jié)果。假設一些經(jīng)常發(fā)生的事情擾亂了安排,應考慮對安排進展改動,為以后類似事情提早做好準備。最后,按照時間安排表跟蹤施行的性能,要繼續(xù)搜集時間數(shù)據(jù)。根據(jù)經(jīng)歷復查時間安排表,在根據(jù)需要和經(jīng)歷修改安排,要逐步的作出改變。在改變時間安排表時,要保存以前的版本。 時間管理的目的搜集時間是為了幫助自己管理時間。假設搜集的數(shù)據(jù)被證明是沒有用的,就需要重新考慮自己搜集時間數(shù)據(jù)的方法。但
22、是,只有在已經(jīng)理論了安排的時間之后再這樣做。記事作了時間安排表,假設由于一些原因?qū)r間安排變化很大,那么也應該搜集更多的數(shù)據(jù),知道自己明白當前是如何使用時間為止。l 缺陷管理 什么是缺陷缺陷是指程序中存在的錯誤,例如語法錯誤、標點符號錯誤或者是一個不正確的程序語句,是任何影響程序完好而有效的滿足用戶要求的東西,是可以表示、描繪和統(tǒng)計的客觀事物。有人把缺陷稱為Bug,這是不正確的。當成為Bug時,令人想到的是那些令人討厭的小蟲子,應該把它們拍死或者不予理睬。這會使一些重要的問題被視為瑣碎小事,會養(yǎng)成一種錯誤的態(tài)度。缺陷并不像無足輕重的Bug,更像是定時炸彈。大家可能會覺得有些夸大其詞,絕大部分細
23、小的缺陷沒有引起嚴重后果。然而不幸的是,很小一部分看起來無關(guān)緊要的缺陷卻能引起嚴重問題。雖然如今缺陷對你來說還不是一個嚴重問題,但很快就會成為一個重要的問題。設計錯誤的復雜性和所導致的缺陷的影響沒有之間關(guān)系,一些微小的編碼錯誤卻可能引起嚴重的系統(tǒng)問題。事實上,絕大多數(shù)軟件缺陷都源于程序員的忽略大意。為了減小缺陷,就必須進展缺陷管理,研究已經(jīng)引入的缺陷,確定引起這些缺陷的原因,并學會在將來如何防止重復同樣的錯誤。缺陷分類。在分析缺陷時,將缺陷進展分類是有幫助的。通過缺陷分類,可以迅速找出哪一類缺陷的問題最大,然后集中精力預防和排除這一類缺陷,這就是缺陷管理的關(guān)鍵。把精力集中到最容易引起問題的幾類
24、缺陷上,一旦這幾類缺陷得到控制,在進一步找到新的容易引起問題的幾類缺陷上。不要急于把10種類型的每一類細分出假設干子類,直到你已經(jīng)搜集到大量程序的缺陷數(shù)據(jù)。那時,才可以看出哪里需要更詳細以及補充什么樣的信息才是最有用的。統(tǒng)計缺陷個數(shù)。采用缺陷記錄日志,記錄那些當你完成初始設計或編碼后仍然留在產(chǎn)品中的缺陷。人們很容易對缺陷辯白,但是要管理好缺陷,就必須搜集有關(guān)缺陷的準確數(shù)據(jù)。假設原諒缺陷,那只會自欺欺人。假設你這樣做的話,就別指望有所進步。 缺陷查找技術(shù)為什么要盡早發(fā)現(xiàn)缺陷。不要期望一個簡單拼湊出來的滿是缺陷的程序,經(jīng)過修改可以成為一個合格的產(chǎn)品。一旦消費出一個有缺陷的程序,它將永遠是有缺陷的。
25、雖然你可以修復所有的問題,并且讓它通過所有的測試,但它還是一個有許多不定的有缺陷的程序。假設工程師能寬容有缺陷的工作,他將消費出低質(zhì)量的產(chǎn)品?!拔覀兠Γ院笤谛扪a吧,這樣的態(tài)度不可能出產(chǎn)出優(yōu)質(zhì)產(chǎn)品。發(fā)現(xiàn)和修復缺陷的費用。在典型工程中,產(chǎn)品被分成很多小的模塊,由不通的工程師負責開發(fā)。在模塊設計、實現(xiàn)、編譯后,工程師作初始的單元測試;單元測試后,多個模塊組成一些大組件進展集成測試;經(jīng)過各種級別的組件測試后,這些組件集成為產(chǎn)品進展產(chǎn)品設計;最后,將產(chǎn)品集成到系統(tǒng)中進展系統(tǒng)測試。隨著系統(tǒng)的規(guī)模和復雜程度不同,單元測試、集成測試、組件測試、產(chǎn)品測試、系統(tǒng)測試的類型、持續(xù)時間、復雜程度有所不同,但幾乎所有
26、規(guī)模的軟件產(chǎn)品,都需要這個過程。研究證明,開發(fā)過程每前進一步,發(fā)現(xiàn)和修復缺陷的平均代價要增長10倍。盡管缺陷的修復時間變化很大,但平均時間總是遵循這樣的規(guī)律,而與缺陷的類型無關(guān)。發(fā)現(xiàn)和修復缺陷的方法。盡管沒有方法不引入缺陷,但是在開發(fā)過程中盡早發(fā)現(xiàn)和修復缺陷還是可能的。有多種發(fā)現(xiàn)程序中的缺陷的方法,根本上都包括以下步驟:表示缺陷征兆;從征兆中推斷出缺陷的位置;確定程序中的錯誤;決定如修復缺陷;修復缺陷;驗證這個修復是否已經(jīng)解決了這個問題。有多種工具和輔助手段來幫助完成這些步驟,工程師最常用的工具是編譯器,它可以表示出大部分語法缺陷。但是編譯器最根本的任務是生成目的代碼,并且可能會在源程序有缺陷
27、的情況下生成代碼。因此,不能檢查出所有的拼寫、標點符號或其他不符合語法的缺陷。一般編譯器僅提供了缺陷的征兆,你必須自己對問題定位,并確定是什么問題,通常很快可以做到這一點,但偶爾也需要較長的時間另外一種常用方法就是上面講述的測試。測試的質(zhì)量是由測試用例覆蓋所有程序功能的程度決定的。測試可以用來驗證程序幾乎所有的功能,但有自己的缺點:同編譯器一樣只能滿足缺陷派出的第一個步驟,你仍必須從缺陷征兆找出問題的根源,然后才能修復;隨著工程規(guī)模的擴大,全面的測試會花費大量的時間,要進展完全測試幾乎不可能的。最有效的發(fā)現(xiàn)和修復缺陷的方法是個人復查源程序清單。這種方法是負很難徹底去除程序中的缺陷,但事實證明,
28、這是最快而且最有效的方法。l 代碼復查代碼復查就是研究源代碼,并從中發(fā)現(xiàn)錯誤。代碼復查更有效的原因是:在復查時看到的是問題本身而不是征兆。從頭到尾復查代碼時,考慮的是程序應該做什么。因此,當看到某些地方不正確時,就可以看到可能的問題是什么,并立即去驗證代碼。復查的缺點是:非常耗時,而且很難恰當?shù)倪M展;復查時一種技能,當然可以通過學習和理論來進步。代碼復查的第一步是理解自己引入的缺陷的種類,這是搜集缺陷數(shù)據(jù)的主要原因。因為在下一個程序中引入的缺陷種類一般會與前面的根本類似,只要采用同樣的軟件開發(fā)方法,情況會一直如此。另一方面來說,當你有了技能和經(jīng)歷或改變了過程,缺陷的類型和數(shù)目會隨之變化。但是到
29、了一定程度后,改進就變得非常困難了。這是,就必須研究缺陷,這可以幫助你找到更好的發(fā)現(xiàn)和修復缺陷的方法。如何進展代碼復查。代碼復查的目的是在軟件過程中盡可能早和盡可能多的發(fā)現(xiàn)缺陷,缺陷發(fā)現(xiàn)時間越少越好。采用表4.3描繪的一個有序的檢查方法,在編譯之前進展代碼復查,是完成目的最好的方法。編譯之前進展復查。有幾個原因說明應在編譯之前進展代碼復查:不管編譯前或編譯后,進展完好的代碼復查的時間大約一樣;不管編譯前或編譯后,對檢查語法有效性的效果是一樣的;先做復查將節(jié)省大量編譯時間,假設不做代碼復查,一般要花1215的開發(fā)時間進展編譯,一旦使用代碼復查后,編譯時間可以縮短至3或更少;編譯程序后,代碼一般復
30、查很難徹底的進展; 經(jīng)歷證明,在編譯階段有大量的缺陷時,一般在測試階段也有許多缺陷。建立個人代碼復查檢查表。假設想發(fā)現(xiàn)和改正程序中的每一個缺陷,就必須遵照一個準確的規(guī)程。檢查表可以確保遵循這個規(guī)程,它包括一系列程式的步驟。按照檢查表去作時,就知道如何進展代碼復查。假設可以正確使用檢查表,還能知道每個步驟發(fā)現(xiàn)了多少缺陷。這樣就能測量出復查過程的效率,并進一步改進檢查表。檢查表包括了個人的經(jīng)歷。通過不斷的使用和改進個人檢查表,就可以幫助你用較少的時間發(fā)現(xiàn)這些缺陷。表4.4是一個C+程序代碼復查表的范例。定期更新檢查表。隨著時間的推移,檢查表自然的要變大。但是,檢查表的主要作用是幫助你把注意力集中在
31、關(guān)鍵的方面。太大以后,你將失去重點。所以要定期復查缺陷數(shù)據(jù),刪除那些不能找到問題的表項。從個人檢查表的方法可以認識到,每個工程師都有各自的特點,某個工程師的理論經(jīng)歷對別人不一定適用。因此要設計出適宜自己的檢查表,并定期的對它進展檢查以保證檢查表更有效。只要你在代碼復查中還遺漏缺陷,就要不斷尋找改進檢查表的方法。進展是很緩慢的。最初,你發(fā)現(xiàn)缺陷的才能隨著每次復查都有所進步。此后,進步將變得很困難。要堅持搜集和分析缺陷數(shù)據(jù),并堅持考慮如何才能預防缺陷的產(chǎn)生或怎樣更好的找到缺陷。只要堅持不斷的做下去,就能在代碼復查中不斷進步,不斷進步自己編寫程序的質(zhì)量。編碼標準。編碼標準是被廣泛承受的、可以作為工作
32、樣板的編碼理論集。良好的編碼標準將有效地幫助您防止開發(fā)有潛在危險的代碼,有助于預防缺陷。例如,可以在編碼標準中列出那些應該防止使用的方法,規(guī)定號循環(huán)入口或在說明是初始化變量,防止不良的變量命名等。編碼標準還能有效地統(tǒng)一和標準整體開發(fā)活動。當其他開發(fā)人員參加到工程中來時,他們可以很好地適應這一切。代碼也將變得更標準更易維護。其他種類的代碼復查。在軟件組織中,一種常用的方法是同行評審,就是幾個工程師彼此復查程序。組織良好的同行評審一般會發(fā)現(xiàn)程序中5070的缺陷?;ゲ殡m然需要很多時間,但是可以有效發(fā)現(xiàn)缺陷,因為工程師往往難于發(fā)現(xiàn)自己的設計錯誤。他們創(chuàng)作這個設計,直到程序應該完好什么,即使概念有瑕疵、作了錯誤的設計或?qū)崿F(xiàn)假定,他們往往很難發(fā)現(xiàn)。檢查這可以幫助他們抑制這些問題。對一個大的工程,最正確檢查策略是,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度智能交通信號系統(tǒng)項目投資擔保反擔保合同3篇
- 2024年物流倉儲服務配送合同
- 2025年度混凝土企業(yè)信息資源共享與合作合同3篇
- 【優(yōu)教通】2021年高一生物同步練習:4章-光合作用和細胞呼吸-測試4(蘇教版必修1)-
- 公共機構(gòu)能源資源消費統(tǒng)計系統(tǒng)-操作手冊(統(tǒng)計員)
- 信息系統(tǒng)分析與設計-20211104091632
- 項目管理WBS責任分配矩陣
- 公司技術(shù)戰(zhàn)略及發(fā)展規(guī)劃2010
- 12J201平屋面建筑構(gòu)造圖集(完整版)
- 零售企業(yè)供應鏈金融與風險管理考核試卷
- 一年級下學期道德與法治教學工作總結(jié)
- 財稅公司合同范本
- DB34T4829-2024公路工程泡沫輕質(zhì)土設計與施工技術(shù)規(guī)程
- 抗腫瘤藥物臨床管理辦法培訓
- 福建省福州市2023-2024學年高一上學期1月期末地理試題(解析版)
- 預防性侵害安全教育
- 科大訊飛招聘在線測評題
- 科學備考講解模板
- 譯林小學二年級上冊英語知識綜合訓練50題含答案
- 2024年1月浙江省普通高校招生選考科目考試思想政治試題(含答案)
- 中國大數(shù)據(jù)產(chǎn)業(yè)發(fā)展指數(shù)報告(2024版)
評論
0/150
提交評論