本文已挪至
資訊系統存在很多共性,如果作為產品來開發,那麼如何能夠通過平台
來進行重用和擴充套件,業界中的產品線工程方法就是進行大範圍復用的一種方法。 在園子裡也住了不短時間,發現關注技術的占多數,而除了技術外,軟體工程中還有很多我們需要關注的,如下圖,軟體架構平台基於產品線工程開發。前一陣子對scrum
進行了介紹,接下來準備寫幾篇產品線相關的內容,本篇將對產品線中的四個主要概念進行簡要的說明(可變性管理、商業驅動、架構驅動、兩階段生命週期) ,希望對不熟悉產品線知識的有所幫助。
在講解之前先解釋兩個概念:
產品族:
一組使用通用的資源來構建的產品。乙個產品族是基於它的成員產品的結構相似性而定義的。產品族成員建立在乙個通用平台之上,主要基於產品之間的技術通性而設定的。產品族可以重用於多個產品線。
產品線:
一組共享一組公共管理的特徵的產品,這些特徵滿足乙個選定市場的特定需要。乙個產品線的定義是基於市場策略的,而不是基於它的成員產品之間的技術相似性。為乙個產品定義的特徵,可能需要完全不同於其它成員產品的解決方案。乙個產品線可能是與乙個產品族一起提供出來,但是它也可能需要不止乙個產品族。
在下面介紹過程中,在談架構平台時更偏向於產品族的概念。
》中我畫了乙個重用的圖,產品線將基於更大範圍的重用進行開發。
大家都知道,軟體開發成本是成本的一部分,軟體的維護成本也是很大一塊,產品線工程除了可以減少開發成本外,維護成本也可以大大降低,不再需要維護大量不同版本不同架構的**,也沒有大量不同的文件需要維護。
產品基於重用開發,不需要在每個開發環節都重頭開始,這樣可以大大的縮短上市時間。
由於產品線除了可以重用框架,對同型別產品也可以重用開發方法,這樣對於任務估計、開發計畫都可以很好的重用,這樣也可以減少專案開發的風險。
軟體基於大量成熟和經過驗證的核心資產進行開發,這些元件都已經經過大量使用並得到驗證,所以在專案中應用可以保證出現的問題很少。
雖然產品線預計帶來的效果很迷人,但是它並不是一開始就可以給企業帶來效益的,它必須進行一些前期的投資(核心資產的開發、組織的轉變等)才能獲得回報,右圖是產品線的經濟走線圖,在第三個專案時才能達到收支平衡。
產 品線工程是支援一系列有共性的產品,下圖比較清楚的表明了產品的主要點,可變性(variability)是很重要的乙個概念,在產品開發過程中可變性必 須明確的定義、表達、開發、實現和不斷的完善,它必須是被管理的。可變性管理應該在早期範圍界定是就開始,它與所有核心資產相關。其實現在很多公司,只要 做的軟體是產品性質的,很多都是服務大量不同客戶,都需要進行可變性管理,但是因為沒有明確提出是在進行產品線開發,所以可變性的概念並沒有提出來,所以 自然也得不到重視和研究。可變性管理應該成為產品開發的核心問題之一,這也是我後年的關注點。
上圖中顯示了可變性的三種主要型別:共性、變化點、基於特定產品。要注意,隨著產品的進展,基於特定產品的功能可以會變成變化點,變化點可能會變成共性。
共性和變化點在領域工程中解決,特定產品功能在應用工程解決。
上面簡單講了一下可變性的概念,那麼我們如何表達出來並與別人交流呢?業界有通過模型來表達的,
下圖展現了乙個可變性模型和領域模型的關聯。
規模化產品開發方法-產品線工程 100222.pdf
軟體產品線
軟體產品線,不僅是技術問題,更是管理問題。不僅涉及組織層面的管理流程,同時還涉及專案層面的流程。還涉及組織的結構與戰略等組織高階層面的管理,因此其在組織中實現是比較複雜的。從事軟體產品線開發管理的總體推進的人員,在技術方面需要很強的能力,在管理及其改進上也需要很多經驗。同時需要在組織層面具有整合資源...
規模化產品開發方法 產品線工程 pdf
隨著軟體應用的普及,企業對軟體也越來越重視,不斷的要求採用軟體提高效率,提公升技能增強企業競爭力。隨著客戶的增多,軟體企業這時需要面對更多的 客戶,處理共性和個性問題。如何保證低成本 高質量 快速上市等要求就成為了企業競爭力的主要表現之一,而產品線工程方法就是支援這種大範圍重用 large scal...
規模化產品開發方法 產品線工程 pdf
隨著軟體應用的普及,企業對軟體也越來越重視,不斷的要求採用軟體提高效率,提公升技能增強企業競爭力。隨著客戶的增多,軟體企業這時需要面對更多的 客戶,處理共性和個性問題。如何保證低成本 高質量 快速上市等要求就成為了企業競爭力的主要表現之一,而產品線工程方法就是支援這種大範圍重用 large scal...