,簡介了圖形思考設計。表達設計對於架構師的重要意義,以及簡介了使用統一建模語言uml描寫敘述類以及類之間的繼承關係,這樣的描寫敘述還停留在寫**,表達的但是說是怎樣寫出類**來,接下來我們要學習用uml表示業務的內涵,分析業務的內涵,加以抽象,將細節隱藏起來,用uml圖象表現出來。
大多數情況下,一看到系統分析這個字眼。我們常常迷失於其字面的意義,以為分析的物件是「系統」。這是一種常見的迷失!
所以系統分析的主要物件並不是「系統」本身。而是分析專家們怎樣以其專業知識來敘述系統。亦即。專家心中的「業務(領域)知識」才是系統分析的主要物件。
所以焦點是業務知識(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)。
比如您聽到「買一僅僅吉他」。這「吉他」概念讓您想到經驗中的結他,而去樂器行買一僅僅「真實的結他」回家。
找出領域知識裡的概念,就是找出軟體系統的物件和類別。
◎ 比如麥當勞企業有漢堡、薯條、玩具、特餐、點餐、訂購玩具、顧客、員工、玩具商、分店等等的概念,將相應到軟體系統的類別,所以在麥當勞的軟體系統裡就會有漢堡、薯條、玩具、特餐、點餐、訂購玩具、顧客、員工、玩具商、分店等等的類別。
『后羿從西王母處請來不死之藥,嫦娥偷吃了這顆靈藥。成仙了。身不由主飄飄然地飛往月宮之中。在那荒涼的月宮之中度著無邊的寂寞歲月。』
儘管嫦娥可能是傳說虛構的,並不是事實(reality),可是確確實實是我們心中的清晰概念,傳說中的主角。所以是個重要的類別,表演示樣例如以下:
跟「嫦娥」具有密切關聯的概念是:月亮
和仙丹,常表達例如以下:
不僅上述的名詞概念而已,其攸關的動作也常是重要概念。動詞經常代表一項事件(event)的發生。而人們常從人、事、時、地、物等去描寫敘述乙個事件的發生情境。
◎ 譬如。吃仙丹就有動作(吃)的物件---仙丹,動作的主角---嫦娥。當然還有地點、時間。甚至仙丹**等等。
在傳統觀點裡,大多先繪製uml模型圖,然後才開始構思程式碼的撰寫。使得uml建模成為撰敲**碼的前置工作,因此很多程式猿將uml建模視為多餘的負擔。為了節省開發成本。就將省略掉uml建模的工作了。在新潮的觀點裡,uml模型與**是軟體系統本體的兩個觀點(或面向)。兩者沒有先後順序關係,而是並存和兼具於同乙個人的腦海裡。
這就像兩僅僅眼睛看到的景象並存於乙個人的腦海裡一般。如此才幹看到更真實的世界。也能做出更完美的軟體系統來。
3 業務內涵分析
1 系統分析 system analysis 分析的物件是系統所處業務領域知識 domain knowledge ooa不是要去分析實際的系統,而是用來分析人們對系統的專業認知和做法 從收集到的領域概念來分析出業務內涵。業務 領域 知識 業務內涵 2 舉例 一 東方傳說 嫦娥奔月 后羿從西王母處請來...
Redis事務的應用業務場景分析
業務場景 秒殺問題,如何防止最後一件商品不會被多人同時購買。解決方案 setnx lock key value利用setnx命令的返回值特徵,有值則返回設定失敗,無值則返回設定成功。操作完畢之後,通過del鍵值對來釋放鎖。業務場景 依賴分布式鎖的機制,某個使用者獲取到鎖,之後沒來得及釋放就掛了,如果...
MVC模式中業務抽離的方法
假如我們的activity a和b都對資料data感興趣,會根據資料data的改變進行gui的修改,一般很多同學的做法就是在activity中都寫乙個執行緒或者用封裝的框架 asynctask,volley去獲取網路資料d,對獲取到的資料進行解析,得到activity a和b想要的資料data,然後...