- 相關推薦
軟件過程改進
軟件過程改進【1】
【摘 要】軟件行業的人們通常都會感到“軟件危機”的痛苦。
為解決該危機,必須進行軟件過程管理與軟件過程改進。
本文首先提出了過程思維的這一新理論概念;其次剖析了軟件過程改進的框架;最后給出軟件過程的評估方法。
【關鍵詞】軟件過程管理 軟件過程改進 過程思維 CMM
一、產生背景
目前,軟件行業正處于從手工作坊到在其它工業生產中普遍使用的工程化的進化之中。
人們通常都會感到“軟件危機”的痛苦:軟件的推出總是晚于計劃,而成本卻往往高于預算,但功能卻往往沒有預先設計的那么多,并且后期對軟件產品的維護比較困難。
為了解決這個危機,軟件開發領域中已經逐步開始引入軟件過程管理與軟件過程改進的概念。
軟件過程改進是指在軟件開發過程中除了應用先進的軟件開發技術和軟件開發方法外,還有一整套的軟件管理和改進技術。
常見的軟件過程改進方法有:CMM、ISO9000、ISO/IEC 15504 等,其中CMM又是事實上的軟件過程改進的工業標準。
二、過程思維
“為了解決軟件問題,重要的第一步就是將整個軟件開發任務看作一個可控的,可度量的以及可改進的過程。”,倡導過程思維的先驅Watts Humphrey在他的著作中是這么闡述過程的。
過程思維也是一種自然的思維方式,我們所擁有的知識和經驗實際上也是采用和過程相類似的方法保存在大腦中;但過程思維方式和傳統思維方式有所不同。
對于一個軟件項目組的成員來說,如果每個成員都能采用相同的過程思維方法,將會統一各個成員的工作目標,為實現最終的目標而共同努力。
如果軟件的開發沒有圍繞過程為中心進行,往往會導致軟件開發過程的混亂,使得開發人員不得不到處救急,來維護軟件。
三、軟件過程改進的框架
當有效的軟件過程環境建立好了以后,過程環境中的機制有利于我們建立過程文化和過程架構。
軟件過程改進的戰略應該建立在當前的軟件過程改進環境下的一個整體框架之上。
這些整體框架中標識出了軟件過程改進中必須包括的關鍵的領域。
下面我們介紹一種軟件過程的改進框架。
該軟件過程的改進框架包括以下四個方面的內容:
(一)軟件過程架構:支持過程環境需要兩種類型的架構。
一為組織及管理方面的架構,包括角色和職責;另一為技術方面的架構,包括技術工具和相關的設備。
(二)軟件過程改進規劃圖:它指定一個將要采用的軟件過程模型,并且規劃出實現高效的軟件過程的步驟。
軟件過程改進規劃圖為我們指明了實現軟件過程所要經歷的各個階段及層次以及為了實現這些目標所必經的關鍵點。
這些過程模型可以是CMM/CMMI或者ISO/IEC 15504等。
(三)軟件過程評估方法:它指出對組織當前軟件過程,活動以及架構進行評估所采用的方法及技術.通常評估是根據軟件過程改進規劃圖而進行的。
(四)軟件過程改進計劃:為進行軟件過程改進,根據評估中所發現的各種問題,提出相應的改進解決方案。
通過實施軟件過程改進計劃,可以提高現有的軟件過程水平。
構成框架的這四個部分是相互關聯的,任何一個軟件過程的改進策略都應該包括這幾個部分,否則會造成沖突。
通常是先根據軟件過程改進規劃圖對已有的架構進行評估,然后制定軟件過程改進計劃,再進行改進,從而達到改進規劃圖中的軟件過程成熟度的級別。
四、基于CMM的軟件過程改進
在軟件過程改進中,關鍵要做好軟件過程改進規劃圖的分析工作,并在此基礎上進行軟件過程評估分析。
下面結合CMM(Capability Maturity Model for Software---軟件能力成熟度模型)綜合分析軟件過程改進。
(一)軟件過程改進規劃圖
軟件過程改進規劃圖會劃分出過程改進中不同的階段,并告訴我們在每一個階段過程應該具備的特點和屬性。
軟件過程改進規劃圖中應該先定義好目標,然后通過過程改進活動提高整個組織的能力成熟度,并且達到最終的目標。
目前最為著名的過程改進規化圖是由美國卡內基――梅隆大學軟件工程研究所(SEI)提出的能力成熟度模型(CMM)。
CMM主要用于軟件開發過程和軟件開發能力的評估和改進,其目的是讓從事軟件開發的公司和人員從被動地去解決所碰到的難題轉變為以成熟的、規范化的方式來解決問題,從而提高軟件企業生產軟件的能力和水平。
(二)軟件過程評估
軟件過程評估是對一個組織的軟件過程進行評估與檢查。
軟件過程評估可以為我們提供關于當前組織內部所采用的軟件過程狀態的基本情況描述,而它正是我們進行軟件過程改進的基礎。
軟件分析業中經常使用CMM進行過程評估與改進。
CMM是一個框架,是軟件組織提高過程能力的一種途徑。
CMM在設計時就以考慮到各種使用問題,所以評估組可以將CMM作為他們對組織內已存在過程進行評估的基礎,從而確定出過程的強項和弱點(與CMM中過程定義有關的內容)。
這種評估方法通常分被描述為基于CMM的評估。
五、結束語
要克服軟件生產中的這些不如人意的地方,我們就必須采用系統的改進方法。
對一個軟件而言,要降低成本,提高效率,提高軟件的質量,一個規范化的,系統的軟件過程和質量改進方法是非常重要的。
總之,要有效的進行軟件的開發,必須進行軟件過程的改進,就必須要有效的過程環境,為了使過程環境更加有效,我們需要以下角色和機制的支持:明確的過程職責;關于過程的培訓;對過程的度量;對過程執行情況的監控;來自于過程使用者的反饋;來自于外部環境的反饋;過程的強制和檢測。
這樣才能進行有效的過程改進,從而最終實現我們的目標以及提高軟件的質量。
參考文獻:
[1]吳天榮,智明.CMM在軟件過程中的一些思考[J].福建電腦,2007,(5).
[2]劉莉,傅英亮,陶強.基本質量的軟件過程研究[J].計算機工程與設計,2007,(5).
[3]陳新煒.軟件外包服務中的CMM應用[J].商場現代化,2007,(1).
[4]李興峰,馮苗.CMM在教學信息平臺開發中的實施[J]. 中國水運,2007,(12).
軟件過程改進研究【2】
摘要:為增強軟件企業的國際競爭能力,軟件企業實施過程改進非常重要。
過程改進的實施保證了一個項目軟件研發能夠達到較高水平,其意義不僅僅是對軟件開發的過程進行管理,同時也最大程度地降低了企業的成本,產品質量和用戶滿意度也有所提高,是一種高效的管理方法。
介紹了軟件過程改進的基本理念,對sPI中的CMM和CMMI進行了闡述,同時作了簡單的對比。
關鍵詞:軟件過程;過程改進;CMM;CMMI
1、過程概念
要想開發出客戶需要的產品,就必須使用合適的方法、技術以及工具。
過程即是人、方法、技術和工具這4項關鍵因素的集合。
過程它不單單是一堆文檔,有效的過程環境還包括了過程的定義、過程的培訓、過程的監控與強制三個方面。
人們用以開發和維護軟件及其相關產品的一組活動、方法、實踐和變換被定義為軟件過程。
過程改進(Process Improvement):是指根據企業的現狀及發展需求,優化流程制度,努力提高人們在過程中的工作能力,最終“提升產品質量、生產率并降低成本”。
過程改進是企業謀求進步的需要。
軟件過程改進(SPI)是一個長期的投資。
定義清晰的、可測量的目標,對提供指導和幫助改進開發的策略來講是必要的,也為改進結果的客觀測量提供了可能。
SPI的基本理念是質量形成于過程。
過程改進能夠帶來效益。
節省資金和商業改善措施可以將軟件過程改進和商業結果聯系起來,這些改進又可以融合到軟件過程改進中。
這些因素包括:產品質量的提高、上市時間的縮短和生產率的提高。
從改進后的過程對軟件質量的影響可以看到軟件質量的提高,從而導致使用該軟件的產品或服務質量的提高。
產品質量的提高最終可以減少產品的缺陷、提高滿意度、減少退貨以及避免媒體輿論的壓力等。
成熟的過程有助于采用有效的方式引進新技術,利用這種方式可以更快地把新技術引入到產品中,從而獲得競爭上的優勢。
2、核心原則
軟件過程可以定義為對整個軟件生命周期的管理與工程化過程及支持進程的規范說明。
過程的使用者為軟件工程師和項目經理,過程的結果則是軟件程序、系統以及文檔。
軟件過程改進的要求導致了軟件過程重要性的提高,從而產生過程分析和評估的方法。
注重問題、強調知識創新、鼓勵參與、領導層的統一和計劃不斷地改進是SPI的5條核心原則,是從實踐中發展而來、相互關聯的SPI哲學,對SPI工作具有非常重要的指導作用。
軟件過程改進成功的關鍵因素在于我們應當像對待真正的“項目”一樣去看待軟件過程改進計劃,也就是說,我們要為其分配資源、進行管理、編寫階段性的計劃、制定質量以及配置管理計劃等。
過程改進的核心是解決問題,它為過程改進人員指明了目標、明確了方法。
“改進是一種知識的創新,而SPI是受知識驅動的”。
它強調了知識創新在SPI中的重要性,同時也指出注重知識創新的同時對知識的傳播和擴散也不容忽視。
改進活動可以用作一個模型和一個機制,用來試驗所期望的各種不同的過程和行為。
一個典型的原則是運用改進塵埃來試驗修訂的管理過程,如新版的計劃、跟蹤等等。
新的方法可能因為影響太小而“失敗”。
這種意義上的失敗意味著新的過程不如預期的那樣好,這是第一次試驗一個新的或修訂的過程時一個共同缺點。
任何這樣的指導原則應該被文檔化,以改進活動戰略行動計劃中的指導部分。
3、軟件能力成熟度模型(CMM)
CMM——能力成熟度模型,最早的前身是1986年由美國卡內基一梅隆大學的軟件工程研究所(Software En-gineering Institute,SEI)受美國國防部委托研制的一種評估軟件承包商能力的辦法。
在SEI中,CMM被定義為:對于軟件組織在定義、實現、度量、控制和改善其軟件過程中各個發展階段的描述。
它的意義不僅僅是對軟件開發的過程進行管理,更重要的是它還是一種高效的管理方法,有助于組織最大程度地管理和降低開發成本,提高軟件質量和用戶滿意度。
軟件過程的不斷改進是基于許許多多小的、不斷進化的步驟,并不是一次革命性的創新且能在較短時間內實現的。
CMM主要用于軟件過程的改進(SPI)、軟件過程的評估(SPA)和軟件能力評估(SCE)。
CMM組織如圖1所示,有5個等級,旨在增加軟件過程成熟度行動按優先級排序。
CMM由低到高分為5個級別,分別是初始級、可重復級、定義級、管理級和優化級。
成熟度等級是向成熟軟件組織前進途中的階梯,每一個成熟度等級都為過程繼續改進提供一個基石。
在每一級中,定義了達到該級過程管理水平所應解決的關鍵問題和關鍵過程。
每一較低級別是達到較高級別的基礎。
每個成熟度等級都刻畫了不同軟件組織所處特定過程的本質或關鍵屬性。
4、能力成熟度模型集成(CMMI)
CMMI是CMM模型的最新版本。
1981年,美國卡內基一梅隆大學軟件工程研究所(SEI),應美國聯邦政府的要求開發一種用于評價軟件承包商能力并幫助其改善質量的方法。
用于開發的能力成熟度集成(CMMI)是一個過程改進成熟度模型,旨在用于改進由軟件工程學會開發的產品和服務。
CMMI模型由多個過程域(Process Ar-ea,PA)組成,每個過程域包含一組特定實踐(SpecificPractice,SP)和公共實踐(Generic Practice,GP)。
CMMI的本質是軟件管Nn-程的一部分。
當前,軟件管理工程的核心問題是SPI。
多年來,隨著計算機的發展,人們認識到改善軟件生產過程可以高效、高質量和低成本地開發軟件。
采用能力模型來指導組織的過程改進是基于模型的過程改進,穩定的改善過程能力,該組織也能變得更加成熟。
該模型廣泛適用于政府機構、軟件和硬件開發公司。
在CMM中,該模型只有一種表示法,即階段式表示法。
CMM的階段式表示法將軟件組織的成熟度劃分為5個等級。
在CMMI中,該模型采用了兩種表示法:階段式表示法和連續式表示法。
為了保持軟件組織之間的能力成熟度比較,CMMI保留了CMM中的階段式表示法。
但是,為了促進軟件組織更加切合實際地進行內部軟件過程改進,CMMI增加了連續式表示法。
CMMI的兩種表示法是有區別的:階段式表示法把過程域分成5個成熟度等級,指出達到每一成熟度等級必須實施哪些過程域;成熟度等級提供一個階段式的流程改進建議順序。
一個成熟度等級包括多個過程域,每個過程域包含共性目標和特定目標,以及共性實踐和特定實踐。
連續式表示法則將過程域分為四大類型:過程管理、項目管理、工程以及支持。
對于每個大類中的過程域,又進一步分為“基礎的”和“高級的”過程域,在按照連續式表示方法實施CMMI的時候,一個組織可以把項目管理或者其它某類的實踐一直做到最好,而其它方面的過程區域可以不必考慮。
5、結語
CMM偏向于軟件開發過程的管理及工程能力的提高與評估,主要應用于軟件承包能力的評價,是改善軟件質量的一種方法。
而CMMI是各個進程關鍵的元素,在很多領域里面是一個集成的點。
只有正確使用CMMI,才能根據組織的業務目標幫助企業確定組織內需要改革的領域,最終實現價值最大化。
基于度量的軟件過程改進的研究【3】
摘要:軟件開發的過程是在不斷循環的,它分為了各個不同的階段,不管是軟件開發的開始還是結束,都需要對軟件過程進行改進。
科技一直被稱作為一個國家的核心競爭力,因此各個國家都在致力于科技的發展,在這樣的大環境下,基于度量的軟件過程研究已經成為全球的一大熱點。
在這個研究過程中,通過具體的分析找到軟件過程不同階段的問題以及問題的關鍵所在。
這樣的一個研究,在軟件產品開發的質量和效率上有了很大提高。
關鍵詞:軟件過程;度量;過程改進模型;實施方法
基于度量的軟件過程改進正處于研究發展的初期,各方面的條件還不是特別成熟,因此需要先研究軟件開發的過程,在此基礎上尋求一個通用的模型,以此來確定軟件過程度量的各項數據。
本文中,運用軟件的度量具體分析每一個不同軟件過程,基于此,得出一個通用的模型。
首先要采集整個軟件開發過程所需的數據,然后進行各項數據的具體分析,從量化的角度研究軟件過程中的缺陷和優點,以此來采取對應的措施來改進軟件過程,達到研究的目的。
一、中小型的軟件企業在軟件過程改進存在的問題
1.不完善的組織結構
一般的中小型企業的人員較少,各種企業制度也不夠完善。
因此可能其中大多數的工作人員參與了軟件開發生產的各個過程中,這樣的模式不僅缺乏了專業性而且缺乏了層次性。
相較于大型的軟件企業而言,中小型企業由于各方面因素的限制,沒有辦法建立專業的改進研究小組,每個工作人員的工作量都大幅度提高,無法推動研究過程的深入發展。
2.企業規模小,沒有充足的資源
對于軟件企業而言,人才和資金是不可或缺的兩大部分。
我國的軟件開發方面的人才是相當缺乏的,而隨著科技的不斷發展,各種軟件公司不斷涌現,因此對人才的需求也很大。
而作為中小企業來說,沒有足夠的優勢吸引各大人才。
政府鼓勵科技的研發工作,有一定的資金支持,但是在這種僧多粥少的情況下,中小型企業已經無法獲得更多的幫助。
軟件開發是一個長久的過程,中小型企業很難在這樣的情況下支撐下去。【1】
3.在產品質量方面缺乏一定的意識
中小型企業在軟件過程該井方面缺乏一定的經驗,也缺乏經過專業培訓的工作人員了,大多數的工作人員可能對于軟件產品質量的一些基本情況都不夠了解。
雖然他們在理論和概念上有一定的了解,但是在具體研究過程中則缺乏了整體意識和能動性。
4.軟件的生產模式不夠成熟
人才的缺乏常常使一些中小型企業的相關項目都依賴于這些技術相對突出和管理能力比較高的人員,沒有合乎規范并且分工明確的生產模式。
恰恰是因為這樣,其中的高技術人超負荷的完成工作,不愿意去改變慣常的思維模式,不利于產品的技術革新。
5.沒有明確的主體業務,技術分散
由于中小型企業所生產的軟件產品在市場上的競爭力弱,使得企業不得不頻繁的接受業務,造成企業沒有自己核心的主體產品,形成另一種惡性循環。
6.核心技術的缺乏導致生存壓力的加大
中小型軟件企業面向的客戶群是需求量較少的一些人群,比較分散。
這種產品定位雖然可以更貼近客戶,滿足客戶的需要,但是具有很大的不穩定性,客戶要求的變化會導致各項成本的增加。
同時從長遠來看,無法形成品牌優勢,無法在未來的技術競爭中獲取優勢,生存壓力越來越大。
7.管理水平有限,沒有專業的指導
中小型軟件企業的建立者一般都缺乏充足的行業經驗,無法長遠的計劃企業的發展。
同時面臨行業的技術革新,沒有完整的團隊進行技術改革。
同時受到各方面條件的約束,管理水平相對于大型的企業較低。
在軟件過程改進方面沒有專業的人員,沒有專家的專業性指導。
二、基于度量的軟件過程改進的模型
對于軟件過程的度量是實施軟件過程改進的基礎環節。
軟件過程改進是活期軟件運作過程中的大量數據信息,從而判斷軟件過程的不足,然后提出改進的措施和意見,在度量的基礎上,逐步完善軟件過程。
軟件過程的度量和運作是密不可分的,這是個一系列的活動,由多個不同的角色在相關條件的制約下進行的。
數據的獲取和度量的分析是軟件過程度量的兩個重要的活動。
數據的獲取包括采集數據和驗證數據兩個部分,度量的分析則包括數值的轉換、數據的分析和最后的決策三個方面。
數據的采集是度量軟件過程的基礎,選擇正確的數據來源、制定合理的采集計劃、采取有效的采集方法是數據采集的重要途徑。
數據的驗證則是檢驗數據采集是否按照制定的計劃執行以及所采集的數據內容是否正確。
轉化數值是將采集來的數據按照要求進行分類組合,使其能夠得到更好的運用。
數據分析則是在轉換數值之后,將匯總起來的數據運用恰當合理的方法進行分析,發現其中存在的一些問題。
度量過程最后的決策是一個相當重要的環節,在這個部分,企業的管理者可以全面而直觀的了解度量過程以及其中的問題,做出下一步更好的計劃,實現軟件過程度量的進一步完善和成熟。【2】
三、基于度量的軟件過程改進的措施
1.分析現狀,制定更加完善的計劃
在軟件開發過程中,或多或少都會出現一些問題,我們需要找出問題的關鍵。
其中一個問題來源就是軟件開發過程中的外部影響因素,在這里我們需要分析過去的一些數據,或者進行相關的問卷調查,其次就是要求工作人員就問題展開討論,從而使問題能夠得到更徹底的解決。
而另一個問題來源則是內部因素,工作人員需要深入分析整個項目,具體細致的調查每個階段的信息,找出問題更深層次的原因。
從內部和外部兩個方面來分析現狀,找出問題的癥結,然后制定相對切實可行和完整的工作計劃和目標,改變現有的問題,實現軟件過程的重點改進。
2.選擇合適的改進體系及恰當的改進方法
建立一個良好的改進體系可以讓軟件過程改進在實施的過程中取得事半功倍的結果,能夠省時省力,采取恰當的改進方法則可以讓這個過程更加順利的進行。
在建立體系和采取方法的過程中,要考慮企業各個方面的因素,根據自身的需求來實行才能起到有效的作用。
3.建立完善的組織結構,形成人員的培訓體系
軟件的開發與生產都是離不開人才的,但是想要充分發揮每個人的才能需要嚴格和合理的管理,完善企業的組織結構。
在軟件過程改進中,團隊里的工作人員要進行有效的溝通,充分發揮人力資源的作用。
同時,要定期對員工進行培訓,增強人員的專業技能,所以形成人員的培訓體系是必不可缺的。【3】
4.防范軟件過程改進帶來的風險
軟件過程改進是有一定風險存在的,它改變了企業原有的一些程序,控制過程也成為了軟件過程改進的工作之一。
在改進實施過程中,要隨時檢測改進后的結果所帶來的不好的影響,當風險超出一定范圍的時候,要停止改進工作,找出其中存在的問題,對過程改進計劃及時進行修改。
獲得更多的利潤是企業發展過程中主要的目標,因此在改進過程中需要將資金風險考慮進來,要考慮企業的利益。
做好防范風險的工作是取得軟件過程改進成功的一大保障。
四、結論
科技的研究和發展是一個長久而循序漸進的過程,軟件開發研究工作作為其中的一部分,同樣需要科技人員的耐心和努力。
我國基于度量的軟件過程改進正在發展階段,它的不成熟所引起的各種問題在現階段是不可避免的。
我們所能做的就是對其進行全面而深入的研究,在研究過程中,需要對其中的問題做好記錄便于制定相應的措施。
基于度量的軟件過程改進的研究是一個漫長和艱巨的工作,這其中需要高技術人才和大量資源的投入,各大軟件企業自身需要不斷的努力,著眼于企業的長期利益,同時國家政府要加強支持力度,鼓勵中小型軟件企業的發展。
在這樣的共同努力下,相信基于度量的軟件過程改進會越來越完善。
參考文獻:
[1]王海波;基于度量的軟件過程改進研究 ;電腦知識與技術[J] ;2010年第12期
[2]劉婧;軟件過程改進研究 ;軟件導刊[J] ;2013年5期
[3]霍金鳳 段學東 ;基于CMMI的軟件過程改進探究 ;硅谷[J] ;2012年4期
【軟件過程改進】相關文章:
職業規劃是一個不斷進行改進調整的過程10-07
改進的方案03-17
改進方案09-09
工作改進方案12-05
改進方案范文02-17
食堂改進方案12-10
關于改進方案04-07
改進方案【熱門】01-30