《軟件工程ATM舉例》由會員分享,可在線閱讀,更多相關(guān)《軟件工程ATM舉例(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,采用OMT,方法對,銀行網(wǎng)絡(luò)系統(tǒng)ATM(Auto Trade Machine)進(jìn)行分析和設(shè)計。,一、問題的陳述,銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動出納機(jī);各分理處用自己的計算機(jī)處理業(yè)務(wù)(保存賬戶、處理事務(wù)等);各分理處與出納站通過網(wǎng)絡(luò)通信;出納站錄入賬戶和事務(wù)數(shù)據(jù);自動出納機(jī)與分行計算機(jī)通信;自動出納機(jī)與用戶接口,接受現(xiàn)金卡;發(fā)放現(xiàn)金;打印收據(jù);分行計算機(jī)與撥款分理處結(jié)賬。,要求系統(tǒng)正確處理同一賬戶的并發(fā)訪問;網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。圖給出了銀行網(wǎng)絡(luò)系統(tǒng)的示意圖。,銀行網(wǎng)絡(luò)系統(tǒng)ATM(Auto Tra
2、de Machine),退出,下頁,末頁,案例一,銀行網(wǎng)絡(luò)系統(tǒng)ATM(Auto Trade Machine),自動出納機(jī),自動出納機(jī),自動出納機(jī),出納站,分理處,計算機(jī),分理處,計算機(jī),出納站,賬戶,賬戶,圖1 銀行網(wǎng)絡(luò)系統(tǒng)的示意圖,用戶,分行計算機(jī),退出,下頁,末頁,案例一,二、,類的識別方法,常用的識別類的方法有:名詞識別法、系統(tǒng)實(shí)體識別法、使用重用、從用例中識別類等。,、名詞識別法,識別問題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語、名詞性代詞的形式出現(xiàn)。,用指定語言對系統(tǒng)進(jìn)行描述;,從系統(tǒng)描述中標(biāo)識名詞、名詞短語、名詞性代詞;,識別確定(取、舍)類。,退出,上頁,首頁,下頁,末頁,、系
3、統(tǒng)實(shí)體識別法,不關(guān)心系統(tǒng)的運(yùn)作流程及實(shí)體之間的通信狀態(tài),而只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報告等實(shí)體,經(jīng)過分析將他們識別為類(或?qū)ο螅?被標(biāo)識的實(shí)體有:系統(tǒng)需要存儲、分析、處理的,信息實(shí)體,、系統(tǒng)內(nèi)部需要處理的,設(shè)備,、與系統(tǒng)交互的,外部系統(tǒng),、系統(tǒng)相關(guān),人員,、系統(tǒng)的,組織,實(shí)體。,在確定類時,常使用兩類技術(shù):,分解技術(shù),將整體類和組合類分解??煽刂茊蝹€類的規(guī)模。,抽象技術(shù),根據(jù)一些類的相似性建立抽象類,并建立抽象類與這些類之間的繼承關(guān)系。,抽象類實(shí)現(xiàn)了系統(tǒng)內(nèi)部的重用,很好地控制了復(fù)雜性,并為所有子類定義了一個公共的界面,使設(shè)計局部化,提高系統(tǒng)的可修改性和可維護(hù)性。,三、建立對象模型
4、,根據(jù)下述原則進(jìn)一步確定類:,去掉冗余類,(一)確定類,采用名詞識別法:檢查問題陳述中的所有名詞,得到初始類:,軟件銀行網(wǎng)絡(luò)分行計算機(jī)系統(tǒng)分行出納站,分理處分理處計算機(jī)自動出納機(jī)出納員帳戶數(shù)據(jù)帳戶,現(xiàn)金卡事務(wù)數(shù)據(jù)用戶顧客收據(jù),記錄保管,事務(wù),費(fèi)用 安全措施訪問現(xiàn)金,退出,上頁,首頁,下頁,末頁,去掉不相干的類,刪除模糊的類,刪除那些性質(zhì)獨(dú)立性不強(qiáng)的,而應(yīng)該是類“屬性”的候選類,所描述的操作不適宜作為對象類,(二)為每個建模實(shí)體準(zhǔn)備數(shù)據(jù)詞典 描述模板,對類進(jìn)行精確描述,如系統(tǒng)中類的范圍、成員、方法的限制等。,(三)確定關(guān)聯(lián),兩個或多個類之間的相互依賴關(guān)系就是關(guān)聯(lián),實(shí)現(xiàn)關(guān)聯(lián)的方式有多種。,關(guān)聯(lián)通常
5、用描述性動詞和動詞詞組表示。,關(guān)聯(lián)通常由以下方面確定:,、銀行網(wǎng)絡(luò)系統(tǒng)問題陳述中抽取,可能,的關(guān)聯(lián)(動詞詞組),、隱含的動詞詞組,、基于問題域的知識,、去掉不必要和不正確的關(guān)聯(lián),三、建立對象模型,退出,上頁,首頁,下頁,末頁,銀行網(wǎng)絡(luò)系統(tǒng)問題陳述中的關(guān)聯(lián),網(wǎng)絡(luò)包括出納站和自動出納機(jī),行共享自動出納機(jī),分理處提供分理處計算機(jī),分理處計算機(jī)保存賬戶,分理處計算機(jī)處理賬戶支付事務(wù),分理處擁有出納站,出納站與分行計算機(jī)通信,(三)確定關(guān)聯(lián),退出,上頁,首頁,下頁,末頁,出納員為賬戶錄入事務(wù),自動出納機(jī)接受現(xiàn)金卡,自動出納機(jī)與用戶接口,自動出納機(jī)發(fā)放現(xiàn)金,自動出納機(jī)打印收據(jù),系統(tǒng)處理并發(fā)訪問,分理處提供
6、軟件,費(fèi)用分?jǐn)偨o分理處,、基于問題域的知識,分理處雇傭的出納員,現(xiàn)金卡訪問帳戶,、隱含的動詞詞組,分行由分理處組成,分理處擁有賬戶,分行擁有分行計算機(jī),系統(tǒng)提供記錄保管,系統(tǒng)提供安全,顧客有現(xiàn)金卡,(三)確定關(guān)聯(lián),退出,上頁,首頁,下頁,末頁,、去掉不必要和不正確的關(guān)聯(lián),使用下列標(biāo)準(zhǔn)去掉不必要和不正確的關(guān)聯(lián):,(1),若某個類已被刪除,,那么與它有關(guān)的關(guān)聯(lián)也必須刪除或者用其他類來重新表述。在示例中,刪除了“,銀行網(wǎng)絡(luò),”,相關(guān)的關(guān)聯(lián)也要刪除。,(),不相干的關(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)的概念。,(),動作,。關(guān)聯(lián)應(yīng)描
7、述應(yīng)用域的,結(jié)構(gòu)性質(zhì),而,不是瞬時事件,,因此應(yīng)刪除“,自動出納機(jī)接受現(xiàn)金卡,”,“自動出納機(jī)與用戶接口”等。,(),派生關(guān)聯(lián),,省略那些可以用其他關(guān)聯(lián)來定義的關(guān)聯(lián)。因?yàn)檫@種關(guān)聯(lián)是,冗,余的。,銀行網(wǎng)絡(luò)系統(tǒng)的初步對象圖如圖所示,其中含有關(guān)聯(lián)。,退出,上頁,首頁,下頁,末頁,圖初始對象圖,建立對象模型,圖2 銀行網(wǎng)絡(luò)系統(tǒng)的初始對象類圖,分行,分理處,帳戶,顧客,分行計算機(jī),自動出納機(jī),遠(yuǎn)程事務(wù),分理處計算機(jī),出納員,現(xiàn)金卡,出納站,出納事務(wù),通,信,通,信,所有,所,有,所,有,雇傭,涉及,涉及,訪問,授權(quán),有,有,保管,組成,錄入,錄入,錄入,退出,上頁,首頁,下頁,末頁,1,1.*,1.*,
8、1.*,1.*,1.*,1.*,1.*,1.*,1,1.*,(四)確定類屬性,屬性通常用修飾性的名詞詞組來表示。屬性一般不可能在問題陳述中完全表述出來,,應(yīng)分析應(yīng)用領(lǐng)域,,并考慮最主要的屬性。,只考慮與具體應(yīng)用直接相關(guān)的屬性,,不要考慮那些超出問題范圍的屬性;找出重要屬性,避免那些只用于實(shí)現(xiàn)的屬性,要為各個屬性取有意義的名字。,按下列標(biāo)準(zhǔn)刪除不必要的和不正確的屬性:,(1),限定詞,:若屬性值固定下來后,能減少關(guān)聯(lián)的重數(shù),則可考慮把該屬性重新表述為一個限定詞。如銀行碼、站代碼及雇員號等是限定詞,不作為屬性。,(2)內(nèi)部值,:若屬性描述了對象的非公開的內(nèi)部狀態(tài),則應(yīng)從對象模型中刪除該屬性。,(3
9、),細(xì)化,:在分析階段應(yīng)忽略那些不可能對大多數(shù)操作有影響的屬性。,圖給出了銀行網(wǎng)絡(luò)系統(tǒng)對象模型的部分屬性。,退出,上頁,首頁,下頁,末頁,確定類屬性,退出,上頁,首頁,下頁,末頁,圖3 銀行網(wǎng)絡(luò)系統(tǒng)的部分屬性,自動出納機(jī),分發(fā)現(xiàn)金,遠(yuǎn)程事務(wù),種類,日期,時間,數(shù)量,顧客,名字,地址,現(xiàn)金卡,密碼,雇員號,站代碼,分理處,名字,賬戶號,卡片碼,銀行碼,分理處計算機(jī),賬戶,余額、類型,貸款限定,出納員,名字,出納事務(wù),出納站,銀行碼,分行,分行計算機(jī),銀行碼,站代碼,(五)使用繼承來細(xì)化類,使用繼承來共享公共結(jié)構(gòu),以此來重新組織類:,、自底而上,將現(xiàn)有類的共性一般化為父類。,找出具有相同屬性、關(guān)聯(lián)
10、、操作的類,來發(fā)現(xiàn)繼承,例如:“出納事務(wù)”和“遠(yuǎn)程事務(wù)”其屬性與主要操作是是類似的,則將它們的共性一般化,得到父類“事務(wù)”。,、自頂而下,將現(xiàn)有類細(xì)化為更具體的子類。,若假設(shè)的具體化與現(xiàn)有的類發(fā)生沖突,則說明該類結(jié)構(gòu)不恰當(dāng),當(dāng)同一關(guān)聯(lián)名多次出現(xiàn),,,且意義也相同時,應(yīng)盡量具體化為相聯(lián)系的類。例如“事務(wù)”從“出納站”和“自動出納機(jī)”進(jìn)入,“錄入站”就是“出納站”和“自動出納機(jī)”的一般化。,圖4給出了加入繼承后銀行網(wǎng)絡(luò)系統(tǒng)的對象模型。,退出,上頁,首頁,下頁,末頁,從一般類發(fā)現(xiàn)特殊類,公司職員,股東,姓名,身分證號碼,股份,職員,工資,公司職員,姓名,身分證號碼,股份,工資,?,?,從特殊類發(fā)現(xiàn)一
11、般類,公司職員,股東,姓名,身分證號碼,股份,職員,工資,股東,姓名,身分證號碼,股份,職員,姓名,身分證號碼,工資,?,圖4,使用繼承來細(xì)化類,退出,上頁,首頁,下頁,末頁,圖4 銀行網(wǎng)絡(luò)系統(tǒng)的對象模型,銀行碼,出納站,錄入站,遠(yuǎn)程事務(wù),賬戶,余額、類型,貸款限定,顧客,名字,地址,出納員,名字,現(xiàn)金卡,密碼,事務(wù),種類,日期,時間,數(shù)量,分行計算機(jī),銀行碼,站代碼,銀行碼,分行,自動出納機(jī),分發(fā)現(xiàn)金,出納事務(wù),雇,員,號,站,代,碼,分理處,名字,賬戶號,卡片碼,銀行碼,分理處計算機(jī),(六)完善對象模型,在軟件開發(fā)的全過程中,需要不斷地完善對象模型??梢詮囊韵聨追矫婵紤]:,、檢查是否有缺少
12、的對象,如果一個類中,存在毫無關(guān)系的屬性和操作,則應(yīng)該分解這個類。,一般化體系不清楚,可分離為兩個類。,存在名稱及目的相同的,冗,余關(guān)聯(lián),則通過一般化創(chuàng)建一個父類,并組織關(guān)聯(lián)。,、查找多余的類,若類中缺少屬性、操作和關(guān)聯(lián),刪除該類。,、查找缺少的關(guān)聯(lián),、系統(tǒng)的改進(jìn),退出,上頁,首頁,下頁,末頁,現(xiàn)金卡有多個獨(dú)立的特性,分解為,卡片權(quán)限,和,現(xiàn)金卡,??ㄆ瑱?quán)限是銀行用來鑒別用戶訪問權(quán)限的卡片,表示一個或多個用戶帳戶的訪問權(quán)限;各個卡片權(quán)限對象中可能具有好幾個現(xiàn)金卡,每張都帶有安全碼、卡片碼,它們附在現(xiàn)金卡上,表示銀行的卡片權(quán)限。,為了“事務(wù)”與“賬戶”之間的傳輸描述具有一般性,增加“更新”。因?yàn)?/p>
13、一般在每個賬戶中,一個“事務(wù)”包括一個或多個“更新”,一個“更新”是對賬戶的一個動作,它們是取款、存款、查詢之一。即,事務(wù)由若干更新組成,,更多涉及到賬戶。,由于“分理處”與“分理處計算機(jī)”之間的區(qū)別不影響分析,可將“分理處計算機(jī)”并入“分理處”。同理,將“分行計算機(jī)”并入“分行”。,圖5,完善對象模型,退出,上頁,首頁,下頁,末頁,圖5 修改后的對象模型,錄入站,遠(yuǎn)程事務(wù),現(xiàn)金卡,銀行名、卡片碼,安全號,出納員事務(wù),出納員,名字,出納站,分行,銀行碼,站代碼,賬戶,余額、類型,貸款限定,顧客,名字,地址,自動出納機(jī),分發(fā)現(xiàn)金,事務(wù),種類、日期、時間、數(shù)量,卡片權(quán)限,密碼、限制,更新,數(shù)量、類
14、型,雇,員,號,站,代,碼,分理處,名字,賬戶號,卡片碼,錄入,組成,擁有,擁有,雇用,訪問,標(biāo)識,發(fā)行,被錄入,開始,涉及,維持,有,有,四、建立動態(tài)模型,動態(tài)分析從尋找外部可見的模擬和響應(yīng)事件開始,確定各對象的可能事件的順序,在分析階段不考慮算法的執(zhí)行,它是實(shí)現(xiàn)模型的一部分。通常動態(tài)模型有:,事件跟蹤表,、,狀態(tài)圖,。,建立動態(tài)模型的步驟分為步:,、準(zhǔn)備典型的對話腳本,腳本是事件序列,每當(dāng)系統(tǒng)中的對象與外部用戶發(fā)生互換信息時,就產(chǎn)生一個事件,所互換的信息值就是該事件的參數(shù)。對于各事件,應(yīng)確定觸發(fā)事件的動作對象和該事件的參數(shù)。,包括“,正常腳本,”、“,例外腳本,”,,退出,上頁,首頁,下頁
15、,末頁,自動出納機(jī)與用戶交互的正常的腳本如下所示:,自動出納機(jī)請求用戶插入卡片;用戶插入現(xiàn)金卡。,自動出納機(jī)接受卡片并讀出它的卡號。,自動出納機(jī)要求密碼,用戶鍵入密碼“4011”。,自動出納機(jī)與分行確認(rèn)卡號和密碼;分理處檢查它并通知承兌的自動出納機(jī)。,自動出納機(jī)要求選擇事務(wù)類型(取款、存款、轉(zhuǎn)戶及查詢),用戶選擇取款。,自動出納機(jī)要求現(xiàn)金數(shù)量;用戶輸入¥100。,自動出納機(jī)要求分行處理事務(wù);分行把要求轉(zhuǎn)給分理處,確認(rèn)事務(wù)成功。,自動出納機(jī)分發(fā)現(xiàn)金并且要求用戶取現(xiàn)金;用戶取現(xiàn)金。,自動出納機(jī)提示用戶是否想繼續(xù);用戶指出不繼續(xù)。,自動出納機(jī)打印收據(jù),退出卡,并請求用戶取出它們;用戶拿走收據(jù)和卡。,
16、自動出納機(jī)請求用戶插入。,自動出納機(jī)與用戶交互的例外的腳本如下所示:,自動出納機(jī)請求用戶插入卡;用戶插入現(xiàn)金卡。,自動出納機(jī)接受卡并讀它的卡號。,自動出納機(jī)要求密碼;用戶鍵入:9999:。,自動出納機(jī)與分行確認(rèn)卡號和密碼,在咨詢分理處后拒絕它。,自動出納機(jī)指示密碼錯并要求重新鍵入;用戶鍵入:4011,分行確認(rèn)成功。,自動出納機(jī)請求用戶選擇事務(wù)類型;用戶選擇取款。,自動出納機(jī)請求鍵入現(xiàn)金數(shù)量;用戶改變選擇并鍵入“CANCEL”(取消)。,退出,上頁,首頁,下頁,末頁,自動出納機(jī)退出卡并且請求用戶拿走卡;用戶取出卡。,自動出納機(jī)請求用戶插入卡。,、確定事件,根據(jù)腳本確定所有的外部事件,事件包括:發(fā)送者、接收者、外設(shè)信號、輸入、中斷、轉(zhuǎn)換和動作等。使用腳本可以發(fā)現(xiàn)正常事件,但不要遺漏條件和異常事件。,、畫出事件跟蹤表,把腳本表示成一個事件跟蹤表,即不同對象間的事件排序表,圖給出了銀行網(wǎng)絡(luò)系統(tǒng)的事件跟蹤表。圖7 給出了事件流圖,它給出類之間的所有事件。事件流圖是對象圖的一個動態(tài)對照,對象圖中路徑反映了可能的信息流,而事件流圖反映了可能的控制流。,退出,上頁,首頁,下頁,末頁,圖7系統(tǒng)的事件圖,