UML應用:業務內涵的分析抽象&表達

來源:互聯網
上載者:User

標籤:uml建模舉例   高煥堂   

     上一篇,架構設計的UML圖形思考 ,簡單介紹了圖形思考設計,表達設計對於架構師的重要意義,以及簡單介紹了使用整合模組化語言UML描述類以及類之間的繼承關係,這種描述還停留在寫代碼,表達的可是說是如何寫出類代碼來,接下來我們要學慣用UML表示業務的內涵,分析業務的內涵,加以抽象,將細節隱藏起來,用UML圖象表現出來。


一、系統分析       什麼是系統分析?

            大多數情況下,一看到系統分析這個字眼,我們經常迷失於其字面的意義,以為分析的對象是「系統」,這是一種常見的迷失!其實,分析的對象是系統所處的「業務領域知識」(Domain Knowledge)才是正確的。就如同電腦專家James Martin所說:
     「OOA不是要去分析實際的系統;而是用來分析人們對系統的專業認知和做法---- 從收集到的領域概念來分析出業務內涵。」
        (Object-oriented analysis is not an approach that models reality. Instead, it models the way people understand and process reality -- through the concepts they acquire.)

      系統分析的分析對象:領域知識

          所以系統分析的主要對象並非「系統」本身,而是分析專家們如何以其專業知識來敘述系統,亦即,專家心中的「業務(領域)知識」才是系統分析的主要對象。所以焦點是業務知識(Domain Knowledge) ,而不是系統。
      業務(領域)知識 = 業務內涵:

   分析系統的內涵,抽象,表達,讓開發人員懂得業務的內涵

     依據專業知識找到相應的類,相應的對象,用UML表達出來

     知識的組成元素:概念        什麼是概念:

業務(領域)概念
知識的組成要素是「概念」(Concepts)。
◎ 領域知識(Domain Knowledge)的組成要素是領域概念(Domain Concepts)。
◎ 概念有它的屬性(Attribute),概念之間有其關係(Relationship)。
◎ 系統分析(或OOA)就是要分析領域知識裡的概念,並以UML的類別(Class)等示來表示之。

概念(Concept)是抽象的,代表一群實體,是溝通的重要媒介。

「概念是人人互相分享的。概念提供了能讓人人互相瞭解的共通詞彙。」
(Concepts are shared by others. Concepts provide the common vocabulary for communication.)

       概念理解執行個體:
概念理解舉例:

例如:「請買杯咖啡」,咖啡是個概念,具有這種概念的人,都會瞭解這句話的意思。他會憑其經驗而想到真實的咖啡。
◎ 概念代表一個群體---- 「類別」(Class),人們藉由天賦的能力運用經驗去想到其所代表的實際東西---- 「對象」(Object)。

例如您聽到「買一隻吉他」,這「吉他」概念讓您想到經驗中的吉他,而去樂器行買一隻「真實的吉他」回家。
找出領域知識裡的概念,就是找出軟體系統的對象和類別。
◎ 例如麥當勞企業有漢堡、薯條、玩具、特餐、點餐、訂購玩具、顧客、員工、玩具商、分店等等的概念,將對應到軟體系統的類別,所以在麥當勞的軟體系統裡就會有漢堡、薯條、玩具、特餐、點餐、訂購玩具、顧客、員工、玩具商、分店等等的類別。


二、建模舉例ECS Operations and Maintenance System奔月:

『后羿從西王母處請來不死之藥,ECS Operations and Maintenance System偷吃了這顆靈藥,成仙了,身不由主飄飄然地飛往月宮之中,在那荒蕪的月宮之中度著無邊的寂寞歲月。』

雖然ECS Operations and Maintenance System可能是傳說虛構的,並非事實(Reality),但是確確實實是我們心中的清晰概念,傳說中的主角,所以是個重要的類別,表示如下:


跟「ECS Operations and Maintenance System」具有密切關聯的概念是:月亮
和仙丹,常表達如下:


不僅上述的名詞概念而已,其攸關的動作也常是重要概念。動詞常常代表一項事件(Event)的發生,而人們常從人、事、時、地、物等去描述一個事件的發生情境。
◎ 譬如,吃仙丹就有動作(吃)的對象---仙丹,動作的主角---ECS Operations and Maintenance System,當然還有地點、時間,甚至仙丹來源等等。

三、模型與代碼的關係:

在傳統觀點裡,大多先繪製UML模型圖,然後才開始構思程式碼的撰寫,使得UML建模成為撰寫程式碼的前置工作,因此許多程式員將UML建模視為多餘的負擔。為了節省開發成本,就將省略掉UML建模的工作了。在新潮的觀點裡,UML模型與代碼是軟體系統本體的兩個觀點(或面向),兩者沒有先後循序關聯性,而是並存和兼具於同一個人的腦海裡。這就像兩隻眼睛看到的景象並存於一個人的腦海裡一般,如此才能看到更真實的世界,也能做出更完美的軟體系統來。


UML應用:業務內涵的分析抽象&表達

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.