{UML2.0} 分析 WebATM 的主要與次要參與者(Actor)

現在許多網路銀行均提供 WebATM 的功能,利用晶片金融卡為交易媒介,透過網際網路進行交易,而得以讓顧客於任何時刻使用 WebATM 所提供的銀行服務。

由於金融機構在發卡時,將可供金融機構辨識的安全資料放入卡片中,經由卡片的作業系統控管,無法透過任何方法將該部分的安全資料讀出,用任何設備均不能複製一張一模一樣的卡片,所以利用晶片金融卡作為交易媒介的WebATM具有很高的安全性。

上上個星期,有位學員,是實際撰寫某家銀行的 WebATM 系統。他希望能透過使用案例來紀錄需求。

在建立使用案例的模型時,系統範圍(System Boundary)很容易界定,即為 “WebATM” 系統。使用案例(Use Case)也挺容易捕捉的,只要觀察一般銀行 ATM 所提供的服務諸如 “轉帳”、”查詢餘額”、”變更密碼”、”查詢交易記錄”…等。

主要的參與者(Actor),”顧客(Customer)”,這也沒問題,支援性參與者(Supporting Actor),其中必然有一個 “Banking System”,因為 WebATM 系統必然會連至 Banking 系統以作轉帳服務。比較令人 Confuse 的是,晶片金融卡插入讀卡機後到底是否為 Actor?

讀卡機必然是輸、出入的裝置(Device),是屬於使用者介面。使用案例的敘述(Description)一般並不把特定的輸、出入裝置寫在敘述內容裡。例如,去租漫畫或影片時,店員利用 BarCode Reader 讀入條碼,但是,未來若有更佳的輸入裝置而取代現在的,那麼,使用案例的敘述就必須要隨之變動了。

但,學員挺堅持,幾年內輸入裝置是不會變的(其實,這也是許多實際案例中所碰到的),難道一定要堅持不把讀卡機寫入敘述內嗎?

我個人還是比較傾向不要寫在一般的使用案例敘述內,不過,解決方式事實上也非常簡單,只要在使用案例的 “參考資料” 欄位內,或是利用如 EA UML 工具,在 “Constraint” 欄位內,填入 “Key-Value”,如 “Input Device-USB2.0 晶片卡讀卡機” 就可以了。

使用者介面敘述的問題,這也還算好解決,不過,真正的問題是,晶片金融卡到底算不算是外部的系統而成為 WebATM 的 “Actor” 呢?

答案是 “Yes”,它確定是 Actor,是屬於支援性的參與者。

Why?思考 “支援性參與者” 的定義:它會提供服務給設計中的系統。

晶片金融卡具備記憶與運算功能,WebATM 可以透過呼叫晶片金融卡所提供的 APIs 來讀取或寫入資訊。例如,可以查詢晶片金融卡內所儲存的交易記錄;可以將欲變更的密碼寫入卡內;執行交易時由讀卡機將交易資料傳入晶片卡並取得唯一的一組交易驗證碼﹙Mac﹚或簽章﹙digital signature﹚,此交易驗證碼取代密碼傳回發卡銀行而取得此交易的授權,因此,密碼不會在網際網路上傳輸,也不會被破解。

結論是,要把讀卡機與晶片金融卡分開。讀卡機是輸、出入裝置(Device),並不能視為是外部系統;晶片金融卡因為有提供服務給 WebATM 系統,所以是屬於支援性參與者。

參考一個基本 WebATM 的使用案例圖如下。

WebATM 使用案例圖

文章導覽

   

共有 2 則迴響

  1. Hello~

    這是常態,若你的價值觀是建立在上司對你的肯定上,那你會過得很不快樂地。

    我若是選擇在你所待的單位,若決定要留下來,那麼,作一些美美的文件,這也沒什麼,”應付” 的功夫總是會做的,但也不會對此放太多的心思。

    而若無法接受上司所給你認為是不愉快、沒有意義的工作,那就是離開。

    所以,開心與否、個人的成就與否,我是不會將其與現在所待的公司連結在一起。

    從 10 餘年前,我早已認清此點,個人的學習與成長,是從來沒有指望過與公司同步成長的。

  2. 其實以前聽過您的課程,自己也實作了一些圖,不過leader 並不覺得這個圖有什麼好的,其實我老板們要的是 文件做的好,圖要多,這樣表示很用心….這個我該說什麼呢?有時覺的很無奈。所以有點不開心。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *