我的雲端生活網 - Life+

Sunday, March 29, 2009

工具系列:UML狀態圖

本篇介紹UML狀態圖。狀態圖是用來表達系統執行的狀態,特別要顯示系統在不同狀態之間有不同的行為。系統的每一項活動或操作步驟會使一個狀態轉移為另一個狀態。通常,狀態圖關心的範圍相當小,只和一個類別或元件有關。

以下先介紹狀態圖的圖示,然後給一個示範。

一、UML狀態圖的圖示
  • 狀態:(State) 用圓角方形、其中寫狀態名稱,表示一個狀態。圓角方形中間可打一橫線,線下方標示該狀態的效果

  • 效果:(Effect) 以格式為 "動作類型 / 動作" 的文字,描述一個狀態的進、出、及運作的效果。動作類型Entry, Exit, 和 Do 等等。動作可以是類別的操作方法、或是簡單的動詞。對一項狀態來說,如果同一組動作類型的行為都有同樣的效果,則應該將此狀態效果寫出來。
  • 傳遞:(Transition) 從一項狀態拉出帶箭頭的線、到另一項狀態、並在線上標識名稱,表示從一項狀態傳遞到另一項狀態。

  • 傳遞標籤:(Transition Label) 以格式為 "事件 [限制條件] / 動作效果" 的文字,描述一項狀態滿足條件時會觸發一項事件、轉為另一項狀態,並且造成一項效果。事件(event)若使用英文應記為過去式動詞。限制條件是一則判斷式,為了表達明確,不要使用重疊的限制條件,例如 x <= 0 是重疊的,應該分為 x < x =" 0" style="font-weight: bold;">動作效果要標記類別的操作方法;動作效果和狀態效果有相同意義。
  • 起動狀態:(Initial State) 用實心圓點表示起動狀態。起動狀態拉出的傳遞線不能有限制條件
  • 結束狀態:(Final State) 用外圍圓邊的實心圓點表示結束狀態。

二、UML狀態圖的示範

以下示範一台讀卡機的狀態圖。

Friday, March 27, 2009

【RFID企業及醫療系統整合商(SI)加值應用研討會】歡迎共襄盛舉!!



● 活動時間:2009年4月15日(週三) PM13:30~16:40
● 活動地點:六福皇宮 B3永康殿 (台北市中山區南京東路三段133號)
● 邀請對象:中大型企業、醫療產業IT決策者及SI系統整合服務商
● 參加辦法:本活動完全免費入場,凡參加者有機會獲得Asus 10吋Eee PC或捷安特自行車,席次有限,敬請盡速報名,以免向隅!
● 線上報名:http://211.22.252.75/RFIDPublish/Seminar.htm

金融海嘯肆虐全球,各大產業無不精實帷運力抗景氣寒冬,在各大組織調整體質與步伐的同時,除了刪減預算、減薪、裁員之外,難道沒有更好的解決方案嗎?

微程式資訊提供企業/醫療IT決策者及SI業者絕佳的RFID整合MSN機器人加值應用解決方案,幫助企業及醫療產業快速整合現有系統資源,有效降低營運成本、徹底提昇管理效能,讓您用RFID創新科技抓住新契機,在這波經濟危機浪潮中穩站浪潮最前端,成為產業趨勢新霸主!

本次研討會除了邀請到多位業界名人與您分享各產業RFID導入心得之外,現場更提供企業、醫療、電子票證應用情境模擬展示,讓所有來賓透過現場互動展示與實境體驗快速掌握RFID加值應用模式,從體驗中發現產業加值新趨勢。


>> 現場實境展示項目 (點圖放大)


一、核心應用
1. RFID人員資料/卡片管理
2. 全球化IP門禁/差勤管理
3. 電子點卷清算管理

二、醫療應用
1. 物流&氣送桶管理
2. 醫療檢體、藥品管理
3. RTLS即時定位應用
- 人員追蹤管理
- 儀器資產管理
- 母嬰同室管理
- 手術流程管理
4. 醫療護送管理
5. 醫療臨床照護

三、企業應用
1. RFID TASHI Solution-JanitorLite (高速網路門禁/差勤)
2. RFID TASHI Solution-Sentinel (RFID安全辨識視訊影音對講)
3. RFID TASHI Solution-Home Automation (RFID家庭自動化)
4. 侷限空間&緊急求救
5. 影印列印漫遊

四、電子票證解決方案
1. 電子票證模組
2. 電子票證小額付款機
3. LCD電子票證機
4. EDC電子票證機
5. 電子票證多功能複合機
6. 電子票證行動PDA
7. 電子票證觸控式Kiosk
8. 自動販賣機

誠摯邀請您報名參加喔 !! ^^

Wednesday, March 25, 2009

工具系列:UML活動圖

本篇介紹UML活動圖(Activity Diagram)。UML活動圖和一般的程式流程圖非常像,並多了能夠描述平形處理的能力。活動圖可表達流程,可用在描述複雜的操作過程、複雜的業務規則、一項或多項使用案例、或一項或多項商業流程。

以下,先介紹圖示及使用方式,接著展示一項示範。

一、UML活動圖的圖示及使用方式
  • 活動:(Activity) 用圓角方形、其中寫上活動名稱,表示一項活動。一項活動可以是呼叫一項操作方法、執行一項步驟、或是商務流程中的一項。

  • 使用案例:(Use Case) 用橢圓型、其中寫上案例名稱,表示一項使用案例。在UML活動圖中,可以將一項使用案例當做一項活動來配置。

  • 起點:(Start Point) 用實心圓點表示起點。一張UML活動圖必須有一個起點。

  • 終點:(Ending Point) 用實心圓點外加一環邊界,表示終點。一張UML活動圖可能沒有終點:例如,連續的流程。

  • 流程:(Flow/Edge) 從一項活動拉出帶箭頭的線、到另一項活動,表示一條流程從一項活動到另一項活動。
  • 決策點:(Decision Point) 用空心菱形表示一個決策點。決策點有一條流程流入、並有多條流程流出,其中,在多條流出的流程中可挑選執行其中一條流程。
  • 決策條件:(Guard/Condition) 用格式為 [測試條件] 的文字、附在決策點流出的一條流程線上,表示一項決策條件。一個決策點的每一條流程都必需有決策條件。

  • 合併點:(Merge Point) 用空心菱形表示一個合併點。合併點有多條流程流入、並有一條流程流出。合併點隱含在多條流入的流程中、根據流出流程的決策條件、有一條或多條流程要抵達,才能進行流程合併之後的工作。

  • 分岐:(Fork) 用一條粗線橫擋、有一條流程流進、並多條流程流出,表示一份平行工作的開始。

  • 結合:(Join) 用一條粗線橫擋、有多條流程流進、並一條流程流出,表示一份平行工作的結束。流程的合併隱含了所有流進的流程都要抵達、才能進行流程結合之後的工作。

  • 泳道:(Swimlane) 用大長條方塊、一端加上標籤欄位,表示一條泳道。泳道是UML活動圖中用來將一部份的活動和其他物件劃分為一群的空間。泳道的標籤名稱通常是一項參與者的名稱,表示該泳道包含的活動和一位參與者有關。有些泳道用來代表一段執行緒,則不標識為參與者名稱。
  • 分群:(Partitioning) 用併排的多條泳道、將UML活動圖的全部或一部份劃分,表示此圖有一些分群。

二、UML活動圖的示範

以下示範「使用者靠卡登入 RFID 系統」的活動圖。

Monday, March 23, 2009

工具系列:UML溝通圖

UML溝通圖(Communication Diagram),在前一版UML中稱為合作圖(Collaboration Diagram),顯示物件之間的通訊順序。溝通圖乍看與順序圖的功能有些重疊,不過,溝通圖突顯訊息傳遞的順序和分群、而後者則突顯物件運作的順序。

以下,先介紹溝通圖的圖示,再舉出一個示範例子。

一、UML溝通圖的圖示
  • 物件:(Object) 用長方形代表一項通訊個體、其中寫物件名稱、所屬類別名稱、並加底線,表示一項物件。

  • 關聯:(Relationship) 從一項物件拉出一條線到另一項物件,表示一項物件和另一項物件有關聯。關聯可能是一般、組合、或彙總等類型,在本圖型不畫出關聯的細節。

  • 訊息:(Message) 在關聯線上畫出帶箭頭直線,表示帶有方向的通訊訊息。箭頭線上要加上一個或多個訊息標籤,表示在同一條關聯線上、先後有一些訊息傳遞。訊息標籤格式是 階層式標籤代號 : 操作方法 (參數列) : 傳回值 、傳回值可省略。同一關聯線的同方向訊息,可共用一條箭頭線。

二、UML溝通圖的示範

以下示範RFID門禁管理系統的UML溝通圖。訊息要按照先後順序編號,並且可以將同一項案例的訊息分群並列為子訊息。

Thursday, March 19, 2009

msn機器人會打架

剛找到一個有趣的情況:

假設
機器人1: 會自動發訊息通知某事 且有 互動功能(且指令錯誤會回覆)
機器人2: 有互動功能(且指令錯誤會回覆)

且有一方必須是要能從 "非msn client" 加入機器人帳號為聯絡人加入;
另一方需要是可直接在 "msn client" 加入機器人帳號為聯絡人
=================================================
那麼;機器人彼此成為聯絡人時,會形成一個loop,彼此一直傳送訊息永不停止

將較之下 可直接在 "msn client" 加入機器人帳號為聯絡人 的程式,較容易
遭受病毒攻擊,反之;也無可避免

目前我沒有找到好的方法來避免,當然可以加入黑名單 使用發訊息的頻率來避
免大量的互相發訊,但我覺得這些都不是最好的方法,因為無法防範於事前

工具系列:UML順序圖

本文介紹UML順序圖(Sequence Diagram)。順序圖是討論系統中物件彼此溝通時、全部操作的順序。因此,圖中應該列出物件、物件的並存、訊息、以及通訊方向。以下說明圖示的畫法及擺設方式,接著再給一個示範。

一、UML順序圖的圖示
  • 參與項目:(Participant) 將參與的物件水平地擺開,並取適當距離、提供後續繪圖空間。參與的物件,包含在使用案例圖定義的參與者和外部實體、以及在物件圖定義的物件。挑選適當數目的參與項目,使順序圖的主題比較突顯。
  • 生命線:(Lifeline) 從每個物件下方、向下拉出虛線,表示物件運作的時間範圍。通常,同一張圖的每個物件生命線都一樣長;而若一項物件比其他物件更早消滅(從記憶體移除),要在生命線末端添加交叉線符號(X),並且該物件的生命線比其他物件的生命線短。

  • 活動:(Activation) 在生命線上拉出一塊空白縱長方形,表示該參與項目在運作範圍內、有一段活動的時期。活動來自程序呼叫,因此活動方塊也可以稱為程序呼叫方塊(Method-call Box)。物件接受一項程序呼叫、啟動活動時期、最後再傳回結果。
  • 訊息:(Message) 用帶有箭頭的水平線、並在上方加上訊息名稱,表示一項訊息或操作過程的呼叫。線有三種類型:(1) 實線和實心箭頭、代表同步訊息;(2) 實線和線條箭頭、代表非同步訊息;(3) 點線、代表傳回值(return value)。實線是用來呼叫程序,訊息名稱是「操作方法(參數列)」的形式;虛線是用來表示回應訊息,訊息名稱是傳回值的名稱。

  • 通訊起點:可能從一項參與項目先發出訊息,從該項目的生命線直接拉出第一條訊息線。或者,可能不是從任何參與項目先發出訊息,則從左端畫一粒黑點、從黑點拉出第一條訊息線。


二、順序圖的示範

以下示範一般用戶登入 RFID 系統的順序圖,即門禁管理的案例。用戶靠卡創造啟動訊息;讀卡機查詢特定方向、讀取卡片代碼和密碼;接著,讀卡機將密碼加密,傳送到系統系統資料庫代理人取得用戶密碼;系統讀卡機送來的密碼解密、並與資料庫代理人送來的密碼比對,傳回結果;系統讀卡機傳送登入狀態;最後,讀卡機用戶呈現接收情況。

示範的順序圖如下:

Tuesday, March 17, 2009

工具系列:UML物件圖

UML物件圖是由類別圖產生實例,表達系統結構在執行的情況。物件圖可以只畫出我們要討論系統的部份情況。
  • 物件:(Object) 用二個長方形、由上而下依序標示物件名稱和屬性實例,表示一項物件。物件是某個類別的一項實例。第一個長方形要寫物件名稱和類別名稱,中間用冒號(:)區隔、並在下方劃底線。第二個長方形列出較重要的屬性、以及對應的值,屬性和值用等號(=)區隔;多值屬性的值要用大括號 { } 包圍、並使用逗點(,)區隔每一項值:例如,{Grady Booch, James Rumbaugh, Ivar Jacobson} 。在必要時,第二個長方形可以省略:例如,物件名稱也可以省略。

  • 連線:(Link) 從一項物件拉出一條線到另一項物件,表示一項物件連接到另一項物件。連線的二端可以視需要添加文字標籤。連線(link)是類別關聯(association)的實例,所以如果標示連線名稱、要加底線。

  • 參與數目:(Multiplicity) 從一項物件拉出多條線到其他一些物件,表示一項物件和其他物件的關係。拉出線條的數目應該符合類別圖描述的類別關聯參與數目:例如,讀卡機可以讀一組卡片

  • 彙總/組合:(Aggregation/Composition) 類別圖可用的彙總和組合等關聯,也可以用在物件圖。

工具系列:UML類別圖

本文介紹UML的類別圖。類別圖是從類別觀點看系統的結構;物件圖則顯示系統結構在某個時間的實例。二種圖式有一部份是大同小異、並互通有無。以下段落依序介紹類別圖的圖示與示範。另一篇將介紹物件圖。類別圖描述系統的基本結構,並且模型建構符合當前的物件導向程式語言模型,例如Java;於是,類別圖非常適合當做在系統分析階段對程式人員解說的文件。

  • 類別:(Class) 主要用四個長方形從上向下層疊、其中以文字標明各段內容,依序表示類別名稱、屬性、操作方法、以及責任。屬性和操作方法可以用 + 或 - 等前綴符號表示存取能力是公開或私有,另外,或者可用 # 標示保護屬性、以及用 ~ 標示包裝(即若干個類別的集合)。屬性的主體包含屬性名稱、和屬性的資料型態或類別。操作方法的主體包含方法名稱、括弧標示的參數項目、和方法的資料型態或類別。操作方法的參數要寫上參數名稱、和參數的資料型態或類別。如果操作方法有許多參數,要用逗點(,)分隔。第四個長方形要寫物件的責任,並且第四個長方形可以按需要而省略。

    有時為了省略細節、而使表達較簡單又清楚,可以將類別屬性和操作方法的描述文字省略。或者,也可以把第二個長方形和第三個長方形省略,只用一個帶有類別名稱的長方形表示類別。

  • 關聯:(Association) 在一個類別和另一個類別之間拉出連接線、並在上方標示關聯詞(動詞)、二端視需求可標示參與數目和介面名稱,表示二個類別之間的關聯。例如,一或多個「數字」「標記」一種「物品」。參與數目(multiplicity or cardinality)可能標示為數字、表示多項的代用符號(*) 、或是像 "0..1" 的數字區段。可以在關聯詞旁邊以實心三角形標示方向。


  • 彙總:(Aggregation) 在連接線的一端加上空心菱形,表示一項類別(菱形端)對另一項類別有「整體與部份」的關聯。彙總的意思是 has-a ,通常是強調一項類別(菱形端)的包含了另一項類別的集合:例如,讀卡機可以讀一組卡片。

  • 組合:(Composition) 在連接線的一端加上實心菱形,表示一項類別(菱形端)除了對另一項類別有「整體與部份」的關聯之外、而且是由另一項類別組成。組合的關聯力比彙總強,組合隱含了:如果一項類別(菱形端)的實例毀壞,它包含的另一項類別組成物也都毀壞。例如,讀卡機內含晶片。此外,組合的菱形端參與數目必須是 0..1 或 1 。

  • 一般化/特殊化:(Generalization/specialization) 在連接線的一端加上空心三角形,表示一項類別(三角形端)是另一項類別的一般樣式;相對地,另一項類別是該類別的特殊樣式。一般化的意思是 is-a ,也是繼承的關係:例如,MT180/FP 是一種讀卡機。MT180/FPMP-602MUSx是Reader的子型(subtype),而Reader是母型(supertype) 。

    可注意,一般化也可以用在使用案例圖,用來處理案例或參與者的從屬層次。

  • 實現:(Realization) 用帶箭頭的虛線從一項類別拉到另一項類別、並在上方標示用雙角括號 « » 包含的關聯詞(動詞),表示一項類別實現了另一項類別的行為:例如,讀卡機實作天線的用途。

  • 依賴:(Dependency) 從一項類別拉出一條帶箭頭的虛線到另一項類別、不帶標示文字,表示一項類別依賴另一項類別提供的功能。
  • 端口:(Port) 從一項類別拉出一條線、另一端以小空心圓結尾並附帶端口名稱,表示一個輸入端。而另一端以小半圓弧結尾,則表示一個輸出端。端口的圖示也出現在UML元件圖,另一篇將再介紹。
  • 介面:(Interface) 從一項類別拉出一條虛線到另一項類別、並在另一端加上空心三角形,表示一項類別實作另一項類別(三角形端)的介面定義。介面類別要在類別名稱上方標示«Interface»文字 。介面的定義必須反映實作語言的限制。


Monday, March 16, 2009

工具系列:UML概觀、及使用案例圖

UML(United Modeling Language)是一套圖型語言,可以描述模型和概念。UML是大約1999年有Grady Booch、James Rumbaugh和Ivar Jacobson三人,都在做模型建構的研究,而共同創造了UML。他們三人稱為UML的「三劍客」(3 Amigos)。電腦資訊系統分析與設計的學問,除了過去有階層式(瀑布式)的開發生命週期之外,還藉由採用UML帶來物件導向分析設計方式。

版本區別,在幾年前有UML第一版、區分為十一種圖式;最近UML已經是第二版,有十三種圖式。

UML的圖式,按思考的方面及使用場合區分,有功能觀點、物件觀點、動態觀點等方面。
  • 功能觀點:從用戶的觀點看系統模型,主要圖式為使用案例圖(Use-case Diagram)。
  • 物件觀點:關心物件的屬性、操作和關係,主要圖式有類別圖(Class Diagram)。
  • 動態觀點:關心系統的內部行為,主要圖式有順序圖(Sequence Diagram)、活動圖(Activity Diagram)、和狀態圖(State Diagram)等。

按圖式的內容物劃分,十三種圖式分類為結構類、行為類和溝通類。
  • 結構類:類別圖物件圖(Object Diagram)、複合結構圖(Composite Structure Diagram)、元件圖(Component Diagram)、包裝圖(Package Diagram)和部署圖(Deployment Diagram)。
  • 行為類:有活動圖、狀態圖和使用案例圖。
  • 溝通類:有溝通圖(Communication Diagram)、順序圖、互動圖(Interaction Overview Diagram)和時間圖(Timing Diagram)。最後二種是由UML第二版增添。

使用案例圖。使用案例圖是描述使用案例的圖式。一般來說,適合讓專案管理師(PM, Project Manager)或資訊架構師(Information Architect)使用,用來跟客戶溝通。一份使用案例圖,要表達出一份案例或使用情境,除了要使用明白的圖例之外,還要根據合適的情節腳本來繪製。以下先介紹可使用的圖例,接著示範一個實際的使用案例圖。最後,談到腳本的撰寫。

一、使用案例圖的圖例

  • 標題:在圖上方以文字標明本使用案例圖的名稱。
  • 參與者:(Actor) 用最簡單的筆劃劃出人型圖示,表示一位或一些可執行操作的角色。可在圖示下方標示名稱與類型;類型(stereotype)放在名稱上方,並以雙角括號« »包圍。


  • 案例:(Case) 用橢圓形、中間寫上案例名稱(以動詞為主),表示一份系統提供的服務或功能。


  • 關聯:(Association) 用線段連接參與者和案例、或連接案例和另一個案例,並且可用箭頭表達方向,表示一樣東西和另一樣東西的關聯。案例和案例之間的關聯,有包含(inclusion)和擴充(extension)二種。
  • 包含的關聯:(Including association) 從一個橢圓拉出一條虛線、到另一個橢圓,並在虛線上標示«include»文字,表示一個案例包含另一個子案例。例如「登入」包含「讀取帳戶」。


  • 擴充的關聯:(Extending association) 從一個橢圓拉出一條虛線、到另一個橢圓,並在虛線上標示«extend»文字,表示一個案例擴充另一個案例。例如,「檢查其他位置登入」擴充「登入」。


  • 系統範圍:(Boundary) 用大方形包圍一些圖例、與其他圖例隔離,並在大方形邊緣可用文字標明系統名稱,表示在範圍內的項目屬於同一個系統。而在範圍外的項目稱為外部實體。
  • 外部實體:(External entity) 用方形、中間寫了實體名稱,表示一項與系統溝通的外部實體。參與者也是一種外部實體,通常表達為人型圖示。而其他系統或其他組織,則用方形圖示。

二、示範

以下為一項使用案例圖的示範,可注意圖中案例從上往下的順序隱含了操作流程。校園識別卡印卡系統有「登入」和「印卡」二件案例。「登入」要從校務系統「讀取雇員資料」,並且「檢查重覆登入」保證雇員只從一處服務據點工作。「印卡」要從校務系統「讀取服務對象資料」才能印卡。


三、腳本的撰寫

繪製使用案例圖是將一些使用案例畫出來;而使用案例通常是複雜的。為了讓使用案例圖不畫得凌亂,並且讓使用案例在過於簡單與過於複雜之間找到適合的份量,有些書籍特別談到使用案例的撰寫:例如,「使用案例寫作實務」(博客來網路書店的書樣:http://www.books.com.tw/exep/prod/booksfile.php?item=0010225897)。

使用案例,是一串事件清單,可表達一份使用情境。像撰寫一般故事一樣,先寫一條順利完成動作的主線清單。接著,思考每一項事件的旁支案例,它相對於主線清單、包含了一些例外以及對應的處置事件。將案例分支交待完了之後,系統的行為就顯得清楚。

使用案例圖和使用案例,是跟著使用者的觀點看系統模型;於是,特別適合在系統發展初期做與客戶溝通的文件。使用案例圖提供一目瞭然的效用,使用案例腳本則描述系統行為,二者相輔相成、幫助釐清系統全貌。

Saturday, March 14, 2009

工具系列: 用心智圖整理思想

思想是不容易掌握的事物,而且對記憶力差的人特別是這樣。思想的組織,可能有許多詞彙和彼此的關聯構成。要讓資訊記得住,人腦要掌握思想網狀組織的全貌。

心智圖(Mind Map)是跟著網狀或樹狀心理模型而出現的工具,將思想對應的詞彙和關聯畫在紙上。心智圖可以隨著工作的過程一起發展、擴大,也可以在繪圖告一段落時讓思想一目瞭然。網路自由軟體社群 SourceForge 有一個軟體專案提供了漂亮的心智圖軟體 FreeMind (http://freemind.sourceforge.net/,網址會自動連到 http://freemind.sourceforge.net/wiki/index.php/Main_Page )。

心智圖的結構,是以一項主題為中心,向週圍發出旁支。思想的組織可能是很多主題詞彙彼此有許多連結關係,構成網絡形狀;心智圖則將主題限定為一項,而且組織形狀像樹(只有從一個上頭詞彙發出旁支、卻沒有幾個旁支會集)。目前,我這樣使用心智圖:

處理要點:例如,

整理考慮要素:例如,

瀏覽程式結構:例如,

Sunday, March 1, 2009

msnSDK 本週(2009.3.6前)會正式支援display image的更換

imoo機器人目前已測試過msn v8.1 /msn v9 的display image(DP),預計本週會將測試程式碼整理轉入正式的程式碼運作

Blog Archive