• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    RUP定制原理

    發布: 2007-6-04 14:16 | 作者: 網絡轉載 | 來源: 網絡 | 查看: 47次 | 進入軟件測試論壇討論

    領測軟件測試網
    感謝:《軟件工程——技術、方法與環境》一書的作者王立福等,《統一軟件開發過程》一書的作者Ivar Jacobson等和譯者周伯生等,《面向對象系統分析與設計》一書的作者Ronald J.Norman和譯者周之英等,《面向對象分析和設計》一書的作者宛延闿等,《可視化面向對象建模技術》一書的作者劉超等(本文中指明引用書目時依次簡記作《北》《RUP》《Norman》《清》《可》)

    -----------------------------------前言---------------------------

    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是一個“過程產品”,該過程產品是可以在線查找的知識庫,總共大約××××頁的資料!禦UP》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階段瀑布模型,每階段內部還是迭代模型 《可》p30

    延伸閱讀

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

    TAG: rup 定制 原理


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>