在實踐中,筆者發現,對概念的理解不到位,特別是對概念之間的關系理解不到位,是阻礙不少人成功應用RUP的原因之一。
本文采用“為概念及其關系建!钡姆椒,對概念及其關系進行考察,以期深入理解RUP的核心概念。
1、弄清概念的必要性
隨著軟件學科和軟件業的不斷發展,“名詞”越來越多。但是,“名詞”背后的“含義”也真的有如此之多的增長嗎?
舉個例子。1986年,Barry Boehm提出了軟件開發的螺旋模型。從那時起,螺旋模型被當作軟件開發的標準方法。螺旋模型還有其他不同的常用名字,比如演進模型,或者迭代模型[1]。類似的例子還有很多。
看來,軟件界存在不少這種“新瓶裝舊酒”的現象——一個新名詞出現了,它可能僅僅是披著新的表達形式的外衣,而其含義其實和某個舊名詞相同。
筆者認為,在軟件學科飛速發展的今天,反而是踏踏實實搞清楚“變幻無窮”的諸多名詞背后的真正含義,才是最便捷之道。
2、本文的方法:一圖勝千言
本文采用“為概念及其關系建!边@樣一種方法,不僅考察單個名詞的含義,還考察名詞之間的關系。
一圖勝千言。一個概念的本質,往往需要從它同其他概念的關系中,得以體現。不僅考察個體,還考察多個個體之間的關系,這種方法在系統論中,被比喻成“1 + 1 > 2”。令人愉快的是硬幣的另一面,注重考察關系這種方法,從其成本角度而言卻是“1 + 1 < 2”。
3、RUP核心概念解析
3.1、任務來自問題
RUP著名的二維結構,其時間維相關的概念有階段、迭代、里程碑等,內容維相關概念有工作流、角色、活動、工件等。但筆者發現,不少人對這些概念理解不深,特別是對概念之間的關系把握不到位,造成實踐中出現問題。

另外,就是迭代式開發——這種包括RUP在內的多種軟件工程過程都一致推崇的最佳實踐——和活動、工件這些基本概念有何關系。不知道迭代和活動、工件的關系,實際應用RUP時又如何貫徹迭代式開發的思想呢?
還有,配置和變更管理對所有現代軟件開發過程都是必不可少的支持活動,RUP更是將其列為“RUP的6大最佳實踐”之一。但筆者發現,不少開發人員認為配置和變更管理太麻煩,僅僅是因為他們沒有理解配置和變更管理和工件的基本關系。
我們的任務,就來自于這些問題。我可以用一幅圖解決這些問題嗎?
3.2、一圖勝千言
下圖是一幅UML類圖,它概括了上述問題的相關概念,并著重表達了概念之間的關系。本圖的豐富語義,我們通過下面幾節細細來分析。

3.3、角色執行活動,活動生產工件
任何軟件工程過程,都少不了角色(role)、活動(activity)、工件(artifact)等概念(或者類似概念)。

這些概念本身很好理解。角色是對個人或者作為開發團隊的一組人的職責的規定;具體人和角色的關系,好比人和帽子的關系;顒泳褪墙巧珗绦械墓ぷ鲉卧。工件就是工作的成品或半成品。
倒是這些概念的關系顯得更加重要。角色的職責,具體體現在他執行活動和負責工件上。工件是由活動生產出來的——工件是活動的輸出;比如制定《編碼規范》。然而,活動本身也可能以工件為輸入——活動可能要求使用工件;比如編碼活動要參考《編碼規范》。還有一種關系,工件既是活動的輸入又是它的輸出——活動修改工件;比如修改《編碼規范》。

延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/