為何程式設計水平決定軟體質量

2021-04-13 12:31:47 字數 3067 閱讀 2710

◆外部使用者要求

正確,高效,健壯,易用和可靠

◆內部維護人員要求

可維護(**易讀,易讀,易debug,注釋清晰,容易擴充套件)

◆內部測試人員要求

可測試,易用,易理解

◆企業產品化要求

1、可擴充套件,可移植,可配置,靈活,重用性高,模組和元件化

因此質量不是無中生有,是有具體的需求驅動,質量也是為了滿足某種需求。但一開始可能我們並不能意識到這種需求,如一開始並不注意軟體可維護性,到了後期隨著需求不斷變更修改和人員交替,軟體維護拖垮掉專案一半人員時候才反省軟體可維護性的重要性,才來關注這個質量需求並制訂相應的質量目標。

只有當所有人由於沒有執行某些規則而導致慘痛代價後,人們才可能真正理解規則的價值。

因此《**大全》將軟體質量特徵分為內部質量特徵和外部質量特徵:

外部質量特徵包括:

◆正確性

整個系統受說明、設計和實現的錯誤影響程度。

◆可用性

使用者學會和使用系統的難易程度。

◆效率對系統資源的最小利用,包括儲存和執行時間。

◆可靠性

在一定條件下執行特定功能的能力。

◆完整性

防止非法或不適當地訪問。完整性思想包括:限制非法使用者訪問,同時確保證資料恰當訪問;並行資料表進行並行修改;資料段僅含有有效資料等等。

◆適應性

系統在應用或其它環境下不作修改就能使用的能力。

◆精確性

系統不受錯誤影響的程度,尤其是資料輸出方面。精確性和正確性是不同的。精確性是對系統完成其工作效能良好的衡量,而不是它設計得是否正確。

◆堅固性

系統對無效輸入或壓力環境中能繼續執行其功能的能力。

內部質量特徵包括:

◆可維護性

修改乙個軟體系統,提高其效能或修正其錯誤的能力。

◆靈活性

修改系統使其能適應於不同的用途或環境的能力,而不必對系統進行特定的設計。

◆可移植性

能修改所設計的某一系統使其能在其它環境下執行的能力。

◆可重用性

能將系統的一部分用於其它系統的難易程度。

◆可讀性

能讀懂或理解系統源**的能力,尤其是在細節說明這一級上。

◆可測試性

對整個系統進行單元或系統測試以證實其滿足所有需求效能的測試難易程度。

◆可理解性

能從整個系統水平或細節說明這一級上理解整個系統的難易程度。可理解性要比可讀性從更一般的水平上討論系統的緊密性。

2.提高軟體質量的方法

首先應該確認的是質量需要乙個持續改進和提高的過程。談提高軟體質量就是首先要有歷史參照,根據參照制定新的質量目標,然後對產品進行驗證達到新的更高階別的目標。你的軟體是否可維護不是某個開發人員說了算,而是應該有一套明確的標準和準則。

pmbok裡面對於質量管理過程組提及到實施質量保證和實施質量控制兩個重要的過程。質量保證是確保專案按照組織定義的過程在做事情;而質量控制是對你的結果進行檢查,看是否達到了預期的質量目標。在cmmi裡面我們關注過程改進和軟體質量的關係,過程改進是否真正提高軟體質量,乙個重點就是過程的有效性問題,如果我們能幹確保過程是有效的,那是肯定可以提高軟體質量的。

cmmi中的每乙個過程都是其它軟體企業多年的積累,有可以借鑑的地方。過程並不是要多繁瑣或者說一定要採用什麼方法工具,關鍵在於你採用的過程是否真正有效,因此任何走形式主義的過程最終結果都是失敗。

軟體質量保證是一種重要的質量活動,最終的目的還是要提高軟體質量,而有效的方法就是關注軟體開發生命週期,關注軟體開發的各階段的活動。只有每個階段都滿足要求,才可能保證整個軟體質量。

對於乙個好的軟體質量管理計畫,應該包含以下內容:

◆質量目標

沒有目標就談不上改進和衡量質量是否提高基準。質量目標分為大目標和小目標,大目標對於軟體產品而言最重要的就是軟體發布後的缺陷情況。而為了達到這個大目標需要執行評審,review,測試等各種活動,需要將大目標分解為各種小目標:如缺陷的洩漏率目標,評審的覆蓋率情況,測試的覆蓋率情況等。

◆質量保證活動

專案進行過程中需要進行哪些質量保證活動?對於管理過程,技術過程,各階段的輸出都需要有相關的質量保證活動。在一些組織中,確定質量保證活動確定質量保證活動急促和草率的程式設計往往是一件常見的事。程式**充滿錯誤但能很快完成程式設計的程式設計師往往能得到更多的獎勵。而高質量的程式設計師。雖然編出的程式優秀而且確保其是可用的,卻往往得不到這種禮遇。[注]**大全專門提及到質量保證活動的乙個重要作用是讓開發人員意識到軟體質量是第一位的,形成質量意識,但這點卻經常無法做到。

◆測試策略和計畫

測試策略或計畫一般需要單獨出相關的計畫或文件,但整個測試策略仍然要以專案需要達到的質量目標為依據來制定。

◆軟體工程準則

需要遵守的生命週期模型,需求規範,設計規範,編碼規範,介面規範,測試流程和規範等。這些都屬於軟體工程準則的內容,而且很多規範要在專案一開始就約定好並嚴格執行,這樣才能夠保證專案成員有共同的語言。

◆評審預防總是比補救的成本低,因此評審在軟體開發中更應該受到關注。正式的審查,非正式評審,互查,**review和走讀等都是很好的評審手段,專案應該根據實際情況和質量目標來確定各階段採用哪些評審方式,評審的覆蓋率目標等。

◆質量資料的度量

質量保證計畫的結果應該是可以度量的,否則無法知道改進工作的效果。因此在質量控制中我們關注對結果進行度量,分析度量資料以判斷實際的資料是否滿足了預先定義的質量目標。當偏差超過我們預定義的限度後還要分析問題,查詢根源,進行糾正和預防。

根據《程式設計效率》一書,沒種方法發現缺陷的比例在通常情況下都不會超過65%,因此為了達到質量目標一般需要聯合使用一種或多種方法或活動。

3.軟體質量的一般原則

提高效率和質量的最好方法是減少**再加工的時間,不論再加工是由於要求的變更、設計的修改或除錯除錯通常要佔乙個傳統的初始軟體開發周期的50%。消除掉防止錯誤的軟體除錯可提高生產率。因此,縮短軟體開發時間最為明顯的方法是提高產品質量,減少除錯和再開發軟體所需時間。

如果不顧質量而只是想用最短的時間將軟體開發出來,往往很可能需要較長的時間和花費超出。從一開始就著眼於取得最高可能質量和可靠性的軟體開發,易於取得最好的開發進度、最高的生產率甚至是最好的市場成功率。

前期活動較後期對產品質量有更大的影響,你在前期活動中所投入的時間將會節省更多的後期時間。其結果是較少的錯誤、較短的開發時間和較低的代價。

出處:專案管理者聯盟

工程水平決定創新能力

中國企業擁有世界上最強大的低成本製造體系,擁有最有潛力的廣闊市場以及最靈活最本土化的營銷體系,現在又有越來越多的企業把創新提到戰略高度,開始大力發展自己的研發和設計能力。但是中國企業依然很難持續製造出成功的產品。在乙個產品從最初的設計定義,到最終按時推向市場的一系列複雜環節上,大部分中國企業的管理經...

東軟 我的決定

這兩天這個測試部門的工作我算是摸清楚了。測試真的是乙個比較沒有技術的工作,要是日語好這個真的沒什麼難的。或許黑盒測試就是這樣吧,別的我不敢說,但是我做的這個真的不難。先總結一下,我這些天得到的 1 我知道大公司工作是什麼樣的。2 我知道黑盒測試時怎麼樣的 3 我知道學習的重要性,尤其是語言 4 學歷...

微軟張巨集江 工程水平決定創新能力

在研究環境裡,無所謂成功和失敗,而做工程 做產品,最後只有乙個衡量 這個產品最後在市場上能不能賣出去?雖然中國號稱盛產工程師,雖然我國的教育體系被認為最適合培養工程師,但是,其實 工程 這個詞在中國是被完全忽視的。中國企業擁有世界上最強大的低成本製造體系,擁有最有潛力的廣闊市場以及最靈活最本土化的營...