ATM系統(tǒng)分析與設(shè)計(jì)
摘要:結(jié)合軟件工程相關(guān)理論,采用OMT方法對銀行網(wǎng)絡(luò)系統(tǒng)ATM(Auto Trade Machine)進(jìn)行分析和設(shè)計(jì)。
一. 問題需求分析
銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動(dòng)出納機(jī);各分理處用自己的計(jì)算機(jī)處理業(yè)務(wù);各分理處與出納站通過網(wǎng)絡(luò)通信;出納站錄入賬戶和事務(wù)數(shù)據(jù);自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信;自動(dòng)出納機(jī)與用戶接口,接受銀行卡,發(fā)放現(xiàn)金,打印收據(jù);分行計(jì)算機(jī)與撥款分理處結(jié)賬。
要求系統(tǒng)能正確處理同一賬戶的并發(fā)訪問;網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。
分行計(jì)算機(jī) 分理處計(jì)算機(jī) 分理處計(jì)算機(jī) 分理處計(jì)算機(jī) 賬戶 賬戶 賬戶
銀行網(wǎng)絡(luò)系統(tǒng)的示意圖
二. 軟件工程相關(guān)理論
u OMT是Object Modeling Technology的縮寫, 意為對象建模技術(shù). 面向?qū)ο蠼7椒ㄓ泻芏喾N,也都在進(jìn)一步的發(fā)展和完善中。OMT法是目前最為成熟和實(shí)用的方法之一。它從三個(gè)方面對系統(tǒng)進(jìn)行建模,每個(gè)模型從一個(gè)側(cè)面反映系統(tǒng)的特性,三個(gè)模型分別是:對象模型、動(dòng)態(tài)模型和功能模型。
主要的概念包括:類、屬性、操作、繼承、關(guān)聯(lián)(即關(guān)系)、聚集
動(dòng)態(tài)模型描述系統(tǒng)那些隨時(shí)間變化的方面,其主要概念有:狀態(tài)、子狀態(tài)和超狀態(tài)、事件、行為、活動(dòng)。
功能模型描述系統(tǒng)內(nèi)部數(shù)據(jù)值的轉(zhuǎn)換,其主要概念有:加工、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)流、控制流、角色。該方法將開發(fā)過程分為四個(gè)階段:
1分析;趩栴}和用戶需求的描述,建立現(xiàn)實(shí)世界的模型。
分析階段的產(chǎn)物有:問題描述、對象模型=對象圖+數(shù)據(jù)詞典、動(dòng)態(tài)模型=狀態(tài)圖+全局事件流圖、功能模型=數(shù)據(jù)流圖+約束
2系統(tǒng)設(shè)計(jì)。結(jié)合問題域的知識(shí)和目標(biāo)系統(tǒng)的體系結(jié)構(gòu)(求解域),將目標(biāo)系統(tǒng)分解為子系統(tǒng)。該階段的主要產(chǎn)物是:系統(tǒng)設(shè)計(jì)文檔:基本的系統(tǒng)體系結(jié)構(gòu)和高層次的決策
3對象設(shè)計(jì);诜治瞿P秃颓蠼庥蛑械捏w系結(jié)構(gòu)等添加的實(shí)現(xiàn)細(xì)節(jié),完成系統(tǒng)設(shè)計(jì)。主要產(chǎn)物包括:細(xì)化的對象模型、細(xì)化的動(dòng)態(tài)模型、細(xì)化的功能模型
4實(shí)現(xiàn)。將設(shè)計(jì)轉(zhuǎn)換為特定的編程語言或硬件,同時(shí)保持可追蹤性、靈活性和可擴(kuò)展性。
u 類的識(shí)別方法
常用的識(shí)別類的方法有:名詞識(shí)別法、系統(tǒng)實(shí)體識(shí)別法、使用重用、從用例中識(shí)別類等。
1. 名詞識(shí)別法
訪方法的關(guān)鍵是識(shí)別問題域中的實(shí)體,實(shí)體的描述通常以名詞、名詞短評、名詞性代詞的形式出現(xiàn)。首先對系統(tǒng)進(jìn)行描述,從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞性代詞,在列出系統(tǒng)可能的類的基礎(chǔ)上,進(jìn)一步識(shí)別類。
2. 系統(tǒng)實(shí)體識(shí)別法
該方法只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報(bào)告等實(shí)體,經(jīng)過分析將它們識(shí)別為類。被標(biāo)識(shí)的實(shí)體有:系統(tǒng)需要存儲(chǔ)、分析、處理的信息實(shí)體,系統(tǒng)內(nèi)部需要處理的設(shè)備,與系統(tǒng)交互的外部系統(tǒng),系統(tǒng)相關(guān)人員,系統(tǒng)的組織實(shí)體。
在確定類時(shí),常使用兩類技術(shù):
1) 分解技術(shù):將整體類和組合類進(jìn)行分解,可控制單個(gè)類的規(guī)模。
2) 抽象技術(shù):根據(jù)一些類的相似性建立抽象類,并建立抽象類與這些類之間的繼承關(guān)系。抽象類實(shí)現(xiàn)了系統(tǒng)內(nèi)部的重用,很好地控制了復(fù)雜性,并為所有子類定義了一個(gè)公共的界面,使設(shè)計(jì)局部化,提高了系統(tǒng)的可修改性和可維護(hù)性。
三. 建立對象模型
1. 確定類
采用名詞識(shí)別法,檢查問題陳述中的所有名詞、名詞短語,列出所有可能的類,現(xiàn)根據(jù)以下原則進(jìn)一步確定類:
1) 去掉冗余類
2) 去掉不相關(guān)的類
3) 刪除模糊的類
4) 刪除獨(dú)立性不強(qiáng)的類,而應(yīng)該是類的“屬性”的類。
5) 所描述的操作不適宜作為對象的類
最終確定的類為:
分行計(jì)算機(jī) 分行 出納站 出納員 分理處 分理處計(jì)算機(jī) 自動(dòng)出納機(jī) 賬戶 銀行卡 顧客 事務(wù)
2. 為每個(gè)建模實(shí)體準(zhǔn)備數(shù)據(jù)
3. 確定關(guān)聯(lián)
兩個(gè)或多個(gè)類之間的相互信賴就是關(guān)聯(lián),實(shí)現(xiàn)關(guān)聯(lián)的方式有多種。關(guān)聯(lián)通常用描述性動(dòng)詞和動(dòng)詞詞組表示。銀行網(wǎng)絡(luò)系統(tǒng)問題中的關(guān)聯(lián):
l 銀行網(wǎng)絡(luò)包括出納站和處動(dòng)取款機(jī)
l 分行共享自動(dòng)取款機(jī)
l 分理處提供分理處計(jì)算機(jī)
l 分理處計(jì)算機(jī)保存賬戶
l 分理處計(jì)算機(jī)處理賬戶支付事務(wù)
l 分理處擁有出納站
l 出納站與分行計(jì)算機(jī)通信
l 出納員為賬戶錄入事務(wù)
l 自動(dòng)取款機(jī)接受銀行卡
l 自動(dòng)取款機(jī)與用戶接口
l 自動(dòng)取款機(jī)發(fā)放現(xiàn)金
l 自動(dòng)取款機(jī)打印收據(jù)
l 系統(tǒng)處理并發(fā)訪問
l 分理處提供軟件
l 費(fèi)用分?jǐn)偨o分理處
4.使用下列標(biāo)準(zhǔn)去掉不必要的和不正確的關(guān)聯(lián)。
1) 若某個(gè)類已被刪除,那么與它有關(guān)的關(guān)聯(lián)也必須刪除或者用其他類來重新表述。
2) 不相干的關(guān)聯(lián)或?qū)崿F(xiàn)階段的關(guān)聯(lián)。刪除所有問題域之外的關(guān)聯(lián)或涉及實(shí) 現(xiàn)結(jié)構(gòu)中的關(guān)聯(lián)。如“系統(tǒng)處理并發(fā)訪問”就是一種實(shí)現(xiàn)的概念。
3)動(dòng)作。關(guān)聯(lián)應(yīng)描述應(yīng)用域的結(jié)構(gòu)性質(zhì)而不是瞬時(shí)事件。因此應(yīng)刪除“自動(dòng)取款機(jī)接受銀行卡“,“自動(dòng)取款機(jī)與用戶接口“。
4) 派生關(guān)聯(lián)。省略那些可以用其他關(guān)聯(lián)來定義的關(guān)聯(lián)。
5.確定類屬性
屬性通常用修飾性的名詞詞組來表示。可按下列標(biāo)準(zhǔn)刪除不必要的和不正確的屬性: 1)限定詞。若屬性值固定下來后,能減少關(guān)聯(lián)的重?cái)?shù),則可考慮把該屬性重新表述為一個(gè)限定詞。
2)內(nèi)部值。若屬性描述了對象的非公開的內(nèi)部狀態(tài),則應(yīng)從對象模型中刪除訪屬性
3)細(xì)化。在分析階段應(yīng)忽略那些不可能對大多數(shù)操作有影響的屬性。
6.使用繼承來細(xì)化類
有兩種方法:自底向上和自頂向下。1)自底向上:將現(xiàn)有的類的共性一般化為父類。2)自頂向下:將現(xiàn)有類細(xì)化為更具體的子類。
7.完美對象模型
在軟件開發(fā)的過程中,需要不斷的完美對象模型?梢詮囊韵聨讉(gè)方面考慮。1)檢查是否有缺少的對象。2)查找多余的類。3)查找缺少的關(guān)聯(lián)4)系統(tǒng)的改進(jìn)。由于“分理處”與“分理處計(jì)算機(jī)”之間的區(qū)別不影響分析,可將其合并為“分理處”。同理,將“分行計(jì)算機(jī)”并入“分行”。
四. 建立動(dòng)態(tài)模型
動(dòng)態(tài)分析從尋找外部可見的模擬和響應(yīng)事件開始,確定各對象的可能事件的順序,在分析階段不考慮算法的執(zhí)行,它是實(shí)現(xiàn)模型的一部分。通常動(dòng)態(tài)模型有事件跟蹤表和狀態(tài)圖。
建立動(dòng)態(tài)模型的步驟為:
1. 準(zhǔn)備典型的對話腳本
腳本是事件序列,每當(dāng)系統(tǒng)中的對象與外部用戶發(fā)生互換信息時(shí),就產(chǎn)生一個(gè)事件,所互換的信息值就是該事件的參數(shù)。對于各事件,應(yīng)該確定觸發(fā)事件的動(dòng)作對象和該事件的參數(shù),包括正常腳本、例外腳本。
自動(dòng)出納機(jī)與用戶交互的正常腳本如下:
1) 自動(dòng)取款機(jī)請求用戶插入銀行卡,用戶插入銀行卡
2) 自動(dòng)取款機(jī)接受銀行卡并讀出它的卡號
3) 自動(dòng)取款機(jī)要求密碼,用戶輸入
4) 自動(dòng)取款機(jī)與分行確認(rèn)卡號和密碼,分理處檢查并反饋兌現(xiàn)
5) 自動(dòng)取款機(jī)要求選擇事務(wù)類型(取款、存款、轉(zhuǎn)帳或查詢),若用戶選擇取款
6) 自動(dòng)取款機(jī)要求輸入現(xiàn)金數(shù)量
7) 自動(dòng)取款機(jī)分發(fā)現(xiàn)金并要求用戶取現(xiàn)金,用戶取現(xiàn)金
8) 自動(dòng)取款機(jī)查問用戶是否打印收據(jù),若選擇“是”
9) 自動(dòng)取款機(jī)打印收據(jù),請求用戶取出它
10) 自動(dòng)取款機(jī)詢問是否繼續(xù),用戶選擇“不繼續(xù)”,自動(dòng)出納機(jī)退出卡
11) 自動(dòng)取款機(jī)退出卡并且請求用戶取卡,用戶取卡
12) 自動(dòng)取款機(jī)請求用戶插入銀行卡
自動(dòng)取款機(jī)與用戶交互的例外腳本如下:
1) 自動(dòng)取款機(jī)請求用戶插入銀行卡,用戶插入銀行卡
2) 自動(dòng)取款機(jī)接受銀行卡并讀出它的卡號
3) 自動(dòng)取款機(jī)要求密碼,用戶輸入
4) 自動(dòng)取款機(jī)與分行確認(rèn)卡號和密碼,分理處檢查并反饋拒絕
5) 自動(dòng)取款機(jī)指示密碼錯(cuò)并要求重新鍵入;用戶輸入并成功
6) 自動(dòng)取款機(jī)請示用戶選擇事務(wù)類型,用戶選擇取款
7) 自動(dòng)取款機(jī)請求鍵入現(xiàn)金數(shù)量,用戶改變選擇并輸入“取消”
8) 自動(dòng)取款機(jī)退出卡并且請求用戶取卡,用戶取卡
9) 自動(dòng)取款機(jī)請求用戶插入銀行卡
2.畫出事件跟蹤表
把腳本表示成一個(gè)事件跟蹤表,即不同對象間的事件排序表
2. 構(gòu)造狀態(tài)圖
對各對象類建立狀態(tài)圖,反映對象接收和發(fā)送的事件,每個(gè)腳本或事件跟蹤表都應(yīng)對應(yīng)于狀態(tài)圖中的一條路徑
DO:處理分理處事務(wù) DO:確認(rèn)分理處代碼 DO:確認(rèn)卡
分理處事務(wù)失敗
確認(rèn)賬戶 確認(rèn)賬戶 錯(cuò)誤代碼/錯(cuò)誤分理處代碼
錯(cuò)誤分理處賬戶/錯(cuò)的密碼
“分行”類的狀態(tài)圖
五. 建立功能模型
功能模型描述了值之間的信賴關(guān)系,通常用分層的數(shù)據(jù)流圖描述。數(shù)據(jù)流圖有助于表示功能信賴關(guān)系,其中的處理對應(yīng)于狀態(tài)圖的活動(dòng)和動(dòng)作,其中的數(shù)據(jù)流對應(yīng)于對象力中的對象或?qū)傩裕唧w的步驟:
1. 確定輸入、輸出值
先列出輸入、輸出值,輸入輸出值是系統(tǒng)與外部世界之間的事件的參數(shù)。檢測問題陳述,從中找出遺漏的所有輸入、輸出值。由于所有系統(tǒng)與外部世界之間的交到都經(jīng)過自動(dòng)取款機(jī),因而所有輸入、輸出值都是自動(dòng)取款機(jī)事件的參數(shù)。
2. 建立數(shù)據(jù)流圖
數(shù)據(jù)流圖說明輸出值是怎樣從輸入值得來的,數(shù)據(jù)流圖通常按層次組織。最頂層由單個(gè)處理組成,也可由收集輸入、計(jì)算值及生成結(jié)果的一個(gè)綜合處理構(gòu)成。
銀行卡 讀輸入 執(zhí)行事務(wù) 賬戶 用戶 產(chǎn)生輸出
事務(wù)類型
賬戶類型
自動(dòng)取款機(jī)頂層數(shù)據(jù)流圖
3. 描述處理
當(dāng)數(shù)據(jù)流圖已細(xì)化到一定程度后,對各處理進(jìn)行描述,描述方法用自然語言、偽碼及判定樹等。描述可以是說明性的或過程性的。說明性描述確定了輸入、輸出值之間的關(guān)系。說明性描述優(yōu)于過程性描述,因?yàn)樗[含實(shí)現(xiàn)的考慮。過程性描述確定一個(gè)算法來實(shí)現(xiàn)處理功能,算法只能用來確定處理干什么,過程性描述實(shí)現(xiàn)起來較為容易。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時(shí)刪除。