RUP定製原理

來源:互聯網
上載者:User
-----------------------------------前言---------------------------

1. 本文以“層次思維”方法論為工具,思考RUP定製實質,分析RUP定製原理。

2. 記得有“RUP也支援非OO開發方法”的說法,但本文將RUP看作一種純粹的OO開發方法。

-----------------------------------層次思維方法論---------------------------

今天這篇筆記是鉚足了勁兒解決問題的,但也要照顧一下嚴謹,說幾句原理。

1. 樹是階層的同義字,樹枝其實有3種:派生、組合、綁定。

2. 層次思維方法論意義重大(本文就是想讓該原理再做一把貢獻幫我搞清RUP定製),我感覺到的有以下幾點:

2.1. “觸類旁通”的陷阱在“共性”二字。認識了“貓”後,你抽象出“動物”的一些特徵,再見到“狗”,你知道喂喂它是個好注意。

2.2. “原理”往往以“抽象”為代名詞。抽象的父節點往往是原理性的東西,人必死,伯拉圖是人所以伯拉圖會死。

2.3. “原理節點”可以“化零散為結構”。一大堆葉子節點,不經過思考抽象出父節點把它們連起來,還亂。有了“結構”,有了“體系”,就清楚了。

2.4. “探究實質”就是“定性”,就是“找到父節點”。

-----------------------------------老祖宗節點---------------------------

1. 名叫“軟體工程”的老祖宗節點是個什麼樣? 《北》p2

2. 老祖宗節點經過<<bind>>的子節點什麼樣?

-----------------------------------過程開發理論---------------------------

1. 按照Osterweil的觀點:軟體過程也是軟體,軟體過程與軟體產品具有廣泛的類同性,對軟體過程的描述也是一種程式設計的形式。 《北》p169

2. Processes are Software, they have reqts., architecture, design, encoding, evaluations, etc

3. 過程開發的結果是過程產品,過程產品有4要素:功能要素(即活動),行為要素(即活動間通過依賴等關聯構成活動模型,其實4大經典開發模型的圖層級都是活動模型),組織要素(即人和活動間的關聯),資訊要素(即產品)。 《北》p170

-----------------------------------RUP實質:過程產品---------------------------

1. RUP是一個“過程產品”,該過程產品是可以線上尋找的知識庫,總共大約××××頁的資料。《RUP》p324

2. RUP將活動稱為工作流程(其實RUP將活動分為activity和workflow,後者是前者的網狀結構,本質上是活動和子活動的概念,這樣做是為了更好地支援並發:9大workflow間可並發,小activity也可並發)。

3. RUP的活動模型是噴泉模型。噴泉模型體現了軟體開發所固有的迭代和無間隙的特徵。從“活動”角度,各活動多次重複(RUP稱之為迭代);從“產品”角度,各產品不斷“演化/進化”(RUP稱之為增量),原來的勞動成果並未浪費(比如需求捕獲:在初始階段,只捕獲了典型的usecase,到細化階段,捕獲其餘usecase)。 《北》p8

4. RUP將人稱為角色(當然,實際是增加了一層抽象,目的是靈活:不同的人擔任相同或不同的角色,恐怕也有IT人士老跳槽的緣故,呵呵)。

5. RUP將產品稱為工件(更內體現有些是半成品,和噴泉模型的反覆式開發法向匹配)。

-----------------------------------RUP vs SA&D---------------------------

僅對比一個子集:分析模型。

1. 二者分析模型的不同點:

1.1. 結構化分析(SA)的模型:主模型為資料流圖,資料描述用資料字典,處理描述用小說明。 《北》p15

1.2. 物件導向分析(OOA)的模型:物件模型充當主模型、資料描述、處理描述。

2. 以上不同點之中,蘊含著共同點:分析模型都包含主模型、資料描述、處理描述。 《Norman》p38

-----------------------------------RUP定製實質:reengineering---------------------------

溫昱註:本來叫“RUP剪裁”,但除了“剪”掉還是“裁”掉,就不能“增加”嗎?於是我叫“RUP定製”,強調可增,畢竟嗎,對RUP進行reengineering肯定有減有增有改。

1. reengineering的定義:再工程(reengineering)是重新開發現有軟體系統的過程。分3步:逆向工程、新需求的考慮、正向工程。 《清》p402

2. RUP定製的實質是“對過程產品的再工程”。從reengineering的定義可以“派生”出RUP定製的定義:RUP定製是重新開發現有的RUP這個過程產品的過程。

3. RUP定製的必要性:為了更有效地實施軟體過程,應該針對特定的領域,甚至特定的一個項目,對選定的過程模型和標準進行剪裁。 《北》p166

4. RUP定製的步驟: 《北》p166

4.1. 指明工程環境。軟體類型、軟體規模、軟體重要程度、vision、scope、SRS、開發人員素質、合作開發單位的素質。

4.2. 收集資訊。向所以人收集資訊:使用者、開發人員、合約確定者、投標者。

4.3. 定製。選取過程、活動、任務。當然也可添加。

4.4. 文檔化。如CMM所說,軟體過程要“文檔化”、“制度化”。
------------------------------------RUP退化定製3例
1. 徹底退化,成為一個線性瀑布模型

2. 比較退化,成為4階段瀑布模型,每階段內部還是迭代模型 《可》p30

3. 輕微退化,成為經典螺旋模型 《北》p8

------------------------------------RUP非退化定製2例--------------------------

上面的3例都是“退化定製”,它們都有或多或少的“多個活動要序列化”,即

2. 比較退化,成為4階段瀑布模型,每階段內部還是迭代模型 《可》
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.