第二章 背景知識與相關研究
2.4 應用統計流程管制於軟體流程上之研究
所謂統計流程管制,是一個透過統計分析來進行流程管理的方法,包 含了定義、衡量、管制與改善幾個步驟。最早統計流程管制是應用在 製造業之上,用來管制產品線生產產品的流程,是否穩定,產出的產 品是否可以維持固定的品質。以下為進行製程分析探討的要點:
1. 分析製程數據
採集數據(data)的目的是要以此作為行動的依據,無論數據代表什 麼或數值如何呈現,我們都必須用某些分析的方法來提取和解釋隱 藏在數據中的資訊。"解釋清楚數據意義"的本身就是一種製程,
如圖 1 所示[9]。
圖 1 數據需求分析說明
所有的數據都存在偏差:由噪音(noise,或稱為隨機差異,random
14
variation)與訊號(signal,或稱為非隨機差異,nonrandom variation)
兩部分所組成。對於所取得的數值,我們必須要想辦法進行過濾,
以把信號從伴隨其中的噪音中抽出。這類過濾的工作可以依某個人 的經驗、假定前提和假設為據,或者依據更加形式化的方法。分析 數據若無標準的形式化方法,將會令我們難以解釋並使用衡量的結 果。為了安全的使用數據,我們必須要採用一些簡單且有效的方法,
這些方法不僅要能探測出被噪音包圍的信號,而且在沒有訊號出現 時,也能識別並處理正常的製程偏差。分析製程數據是為了要能得 到可以導引決策(decision)與行動的推斷(inference);要從數據中得 出推斷(即結論和預測),不但依賴於正確的分析方法與工具的使用,
也依賴於正確的理解數據的本質,以及對獲取數據的條件與環境所 做的正確假設。有兩種可以得到統計推斷(statistical inference)的方 法:(1)列舉研究(enumerative studies)與(2)分析研究(analytic
studies)[10]。列舉研究的目的是描述性的──是確定"有多少"而不 是在於"為何有這麼多";分析研究的目的則是要預測或改進製程 未來的行為,這也是本研究所採用的主要方式。
2. 製程性能變化
當我們進行有關時間的衡量時,製程和產品的所有特徵都會顯示出 偏差。下面引用Shewhart 的一段話[11]來解釋這個原則:
15
在一張紙上寫上一個字母”a”,跟著馬上再寫一個跟剛剛一模一樣 的”a”;然後一個接著一個的寫下去,直到寫出一串a,a,a,…為止。
即使你試著讓所有的”a”相同,但做不到,也不可能做得到。你會 接受這個由經驗得來的事實,但這意味著什麼?讓我們只看看這對 於管制意味著什麼。我們為什麼連將所有a 寫得一致這樣簡單的事 都做不到呢?一般性的回答也許我們所有的人都會接受。在這些a 當中,存在著很多變化性的原因:紙張不光滑、鉛筆的筆芯不均勻、
以及外部環境不可避免的差異性反作用於你,從而造成了各個a 的 偏差。但是引起各個a 不同的原因僅止這些嗎?也許不是。我們承 認人類自身的侷限性,並且認為很可能還有其他原因。如果我們可 以列舉出為什麼不能使所有a 都寫得完全一樣的所有原因,則我們 一定可以對自然界中的某一部份有更進一步的了解。當然,能做到 我們想做的,所意識到的觀念並不新鮮;它不只屬於人類在某個專 業領域才會有的想法;它得到普遍的認可。這簡單的例子的結論是:
在做我們想做的事情上是有侷限的;做我們打算做的事情,即使像 是寫出完全相同的a 這樣簡單的事,所需要的知識,與我們現在所 擁有的知識相比,是無窮盡的。所以,既然作為公理,我們認知到 我們不能做到自己想要做的事,也不能指望理解我們為什麼不能時
,那麼就必須接受另一個公理,即受管制的性質必定不可能是一個
16
固定的性質。也就是說,一個受管制的性質必定是一個變化的性質。
這是第一個特徵。再回到寫 a 的實驗結果上,我們就會發現更多 有管制的訊息。你寫的a 不同於我寫的a;你的a 以其自身的特徵 而成為你的;我的a 以其自身的特徵而成為我的。其實,你寫的所 有a 並非都一樣,我寫的也是如此;每一組a 的偏差都在某個特定 的範圍內,而每一組都有別於其他組。這種在一定範圍內可區分的、
相對恆定的可變性就是管制的第二特徵。
Walter A. Shewhart 1931 Shewhart 繼續對偏差源進行如下的分類:
歸因於製程中自然且內在的偏差現象,且一個給定屬性的所有衡量
,偏差結果都是共同(common)的。
有可歸屬(assignable)的原因之偏差,而此類偏差可以預防。
這個概念可以用公式表示成:
[總偏差]= [公共原因偏差] + [可歸屬原因偏差] (1)
公共原因偏差(common cause variation)是指由於製程元件(process components,如:人員、機器、原料、環境、方法)之間正常的,或 內在的交互作用所造成的製程性能偏差。製程性能的公共原因偏差 是由涉及時間衡量值的一個穩定不變的模式所刻畫,如圖 2 所示 [12]。因此,由公共原因所引起的製程性能偏差是隨機的,且將在 某些預測界限內變化。當製程穩定時,我們所看到的衡量值中的隨
17
機偏差都源於一個偶然原因的穩定系統(constant system of
chancecause)。我們可以把偶然原因固定的恒定系統看作是產生公
共原因偏差或噪音的起因。這種製程性能的偏差是可預測的,很少 會出現意外的結果。然而,在商業與工業中所使用的製程很少是受 管制的。由可歸屬原因所產生的製程性能偏差,顯示出對產品特性 與其他製程性能衡量的影響。這些影響使偏差模式發生了明顯的改 變,如圖 3 所示[13]。引起可歸屬原因偏差的事件不屬於正常製程,
他們代表了製程中的一個或多個分量發生了突然或永久的異常改 變,這些變化可能是起因於製程的輸入、環境、製程步驟本身,以 及製程步驟執行的方式。當所有的可歸屬原因都被排除,並且使它 們以後不會再發生時,就會只剩下一個單純的、偶然原因的恆定系 統。這樣就有了一個穩定的、可預測的製程。
18
圖 2 受管制的偏差之概念
圖 3 不受管制或可歸屬偏差原因之概念
3. 穩定性的重要性
製程穩定性是對任何企業按計畫生產產品的能力的主要核心,也對 改進製程和生產更好、更具競爭力的產品也很重要。理由如下:
19
(1) 沒有穩定性,也不知道製程可以做到什麼的話,我們就沒有辦
法把訊號從伴隨它們的隨機噪音中分離出來,這樣的衡量也很容易 導致做出不適當的行動。
(2) 沒有穩定性能的歷史紀錄,不受管制的偏移隨時都可能會產生;
那麼對未來狀況性能的預測就沒有合理的依據,使得所有制定出來 的計畫都是有很大風險的。
(3) 不了解性能的穩定程度,就沒有認清那些提示改進機會的可歸 屬原因的依據。
(4) 沒有穩定性就沒有可重複的製程作為製程改進的基礎。
4. 穩定性的概念和原則
在一個穩定的製程中,偏差源只來自公共原因(common causes),穩 定製程中的所有偏差都是由製程本身的內在原因造成的;可歸屬原 因(assignable causes,亦可稱作特殊原因,special cause)引起的偏差,
如因為操作失誤、環境改變、偏離製程、原物料與資源特性的改變 造成的偏差,不是已經從製程中被排除,就是已經被抑制,使其不 會重現(如果是有害的)或是成為該製程的一個永久部份(如果是有 益的)。一個穩定的製程就是一個在統計管制之下的製程,即它的 可衡量特徵或製程性能的基礎始終如一。以前面所提到的穩定製程 為例(即圖 2),我們在此再次重繪,如圖 3 所示。圖中的每個X都
20
代表製程或產品某個給定特性的一個衡量值。在這個範例中,隨機 選擇了一個產品中的四個單元樣本(分組大小n=4),在五個時間點 上的衡量。圖 4 中的曲線代表了每個產品單元衡量可變性的基本 分布,每一條曲線有相同的中心趨勢(central tendency)和離中趨勢 (dispersion)。因為製程是穩定的,所以用同一曲線代表每個採樣點
處該產品特徵的分布或變化性。只要產品將來的衡量數值之分布與 以前衡量的中心趨勢和離中趨勢一致,製程的連續操作會保持穩 定。
圖 4 統計管制的理想化製程 5. 穩定性的測試
為了測試一個製程的穩定性,(1)需要知道每個衡量點處小組內的 (採樣)值是如何變化的;(2)需要對從一個分組到另一個分組觀察到
21
的變化特點相比較[11]。更明確的講,需要確定涉及時間的偏差是 否與發生在小組內的偏差一致。我們也要檢測衡量值相對中心趨勢 的可能漂移或改變。為了建立可接受的計算偏差的界限,最常採用 的技術就是統計製程管制(statistical process control)。統計製程管制 以及與其相關的管制圖(control chart)是由Walter A. Shewhart 在 1920 年代為了達到對產品成本和品質的管制而研究出來的。
Shewhart 的技術在第二次世界大戰中得到集中且充分的應用,並
且在近幾年中被W.Edwards Deming 和其他人作為改進產品品質的 基礎,並在日本和很多美國的企業中被廣泛應用。由於統計製程管 制在工業界獲得成功的結果,這項技術也已經被應用到更多的不同 商業領域上。Shewhart 的管制圖為這些測試提供了一種簡單而且 有效的方法。當要確定一個製程是否穩定時,管制圖是特別有用的 統計學工具[13][14][15]。
6. 近年Control Chart 之應用
近年許多學者提出將Control Chart應用於軟體開發方面,利用管制 圖呈現產品、流程以及專案中各環節的變化,透過觀察這些變化加 以 改 進 , 在 軟 體 開 發 上 , 可 提 高 軟 體 的 品 質 以 及 生 產 力 [16][17][18][19][20],而在專案管理上[21][22],也可透過管制圖的 方式,針對專案中各開發流程所產生的數據,觀察需改善之流程,
22
藉此提高專案控管之能力,其中多數的研究可分為以下三類:
(1) 軟體品質驗證:透過測試的方式,將每次軟體測試的通過率記
錄下來,再以Control Chart將通過率製作成Control Chart,藉此可
錄下來,再以Control Chart將通過率製作成Control Chart,藉此可