曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
如果你曾經(jīng)設(shè)計(jì)過(guò)關(guān)系型數(shù)據(jù)庫(kù),可能對(duì)規(guī)格化屬性值有一定的研究:你應(yīng)該明白表格中
的所有特性值應(yīng)該是原子的,如果發(fā)現(xiàn)非原子特性,你的本能將驅(qū)使你為它創(chuàng)建一個(gè)新的表格。
在X M L設(shè)計(jì)中,最好忘記這些規(guī)則。復(fù)合特性值不是X M L設(shè)計(jì)中需要避免的問(wèn)題。復(fù)合特性值
的例子有:由數(shù)字值和測(cè)量單位(如:米或加侖)構(gòu)成的測(cè)量結(jié)果,或者由錢數(shù)和貨幣單位構(gòu)
成的貨幣值。另外還有地址、地理位置和薪水歷史。最終,你會(huì)將它們分為各個(gè)組成部分,但
是層次化模型的最大特點(diǎn)是你可以將它們組合在一起。這也
意味著你可以暫時(shí)不考慮詳細(xì)的內(nèi)部結(jié)構(gòu),而將它留至設(shè)計(jì)
過(guò)程的后續(xù)階段,這種方式有助于保持高層模型的清晰度,
并且使之易于理解。
在U M L中,你可以將對(duì)象的特性放在描述對(duì)象的框中,
如圖4 - 3所示。根據(jù)我自己的經(jīng)驗(yàn),我認(rèn)為文本形式的特性列
表通常更加易于維護(hù),例如將它們存儲(chǔ)在電子表格中。然而,
為了便于解釋,有時(shí)也需要在示意圖中放入幾個(gè)特性,以便
說(shuō)明該對(duì)象所代表的信息類型:
因此,在第4步的結(jié)尾,我們終于完成了靜態(tài)信息模型:
我們已經(jīng)確定了系統(tǒng)中各個(gè)對(duì)象類型的定義,它們之間的關(guān)
系,以及它們的特性。
現(xiàn)在,我們將轉(zhuǎn)向信息建模的另一個(gè)重要方面:動(dòng)態(tài)建
模,它將描述系統(tǒng)運(yùn)行過(guò)程中對(duì)信息可能執(zhí)行的操作。
4.1.5 動(dòng)態(tài)建模:對(duì)數(shù)據(jù)進(jìn)行哪些處理
到目前為止,我們已經(jīng)了解了靜態(tài)信息模型。如果你希望使用X M L表示系統(tǒng)中流動(dòng)的消息,
第4章數(shù)據(jù)建模與XML使用87 下載
圖4-3
還需要理解以下問(wèn)題:我們將對(duì)數(shù)據(jù)進(jìn)行哪些處理,這些數(shù)據(jù)來(lái)自何方,下一步要送往何處。
動(dòng)態(tài)建模可以采用以下幾種方法。在一個(gè)項(xiàng)目中可能不會(huì)用到所有方法,因此我們不準(zhǔn)備
像介紹靜態(tài)建模那樣提供簡(jiǎn)單的按部就班的方法。在本節(jié)中,我們將列舉一些可選的技術(shù),你
可以根據(jù)自己項(xiàng)目的特點(diǎn)選擇適當(dāng)?shù)姆椒āN覀儗⒔榻B的內(nèi)容有:
• 處理模型和工作流模型
• 數(shù)據(jù)流模型
• 對(duì)象模型
• 對(duì)象生存周期歷史
• 使用案例
• 對(duì)象交互圖
記住,我們的目標(biāo)是爭(zhēng)得大家的同意,獲得眾人正確的理解:創(chuàng)建模型有助于大家理解系
統(tǒng)預(yù)期的功能。你只需要將系統(tǒng)中比較困難的部分模型化,而不必為系統(tǒng)的各個(gè)部分建立模
型。
1. 處理模型和工作流模型
處理模型和工作流模型側(cè)重于人和企業(yè)在完成任務(wù)過(guò)程中所扮演的角色,信息存儲(chǔ)和處理
階段是相對(duì)次要的。例如,處理模型將描述旅游者在度假過(guò)程中遇到事故時(shí)怎么辦:它定義了
旅游勝地的當(dāng)?shù)卮怼⒈緡?guó)的代理和總公司的職責(zé),它明確了誰(shuí)應(yīng)該負(fù)責(zé)安排醫(yī)療、安排返程
和通知親屬。為了使整個(gè)過(guò)程順利進(jìn)行,它可能還規(guī)定了要填寫和傳遞的各種表格,它或許根
本不包含任何計(jì)算機(jī)系統(tǒng)。處理模型通常集中于角色、責(zé)任,以及系統(tǒng)中各方參與者的任務(wù),
而工作流模型更多地關(guān)注于在參與者之間傳送的文檔。
2. 數(shù)據(jù)流模型
數(shù)據(jù)流模型與處理模型非常類似,但是它更多地側(cè)重于信息系統(tǒng),而不是業(yè)務(wù)。數(shù)據(jù)流模
型描述了數(shù)據(jù)存儲(chǔ)、處理器和數(shù)據(jù)流。數(shù)據(jù)存儲(chǔ)規(guī)定了將信息永久性地保留在何處(例如:
計(jì)算機(jī)數(shù)據(jù)庫(kù),或者僅僅放在檔案柜中);處理器將對(duì)數(shù)據(jù)進(jìn)行操作;數(shù)據(jù)流是指將數(shù)據(jù)從
一個(gè)處理器或數(shù)據(jù)存儲(chǔ)傳送到另一個(gè)處理器或數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)流模型極其依賴于靜態(tài)信息模
型;靜態(tài)模型通過(guò)旅游者或旅館等概念的定義描述了它們的含義,但是它沒(méi)有說(shuō)明信息的存
儲(chǔ)。相反地,數(shù)據(jù)流模型將說(shuō)明有關(guān)假期的信息會(huì)一直保留在預(yù)訂數(shù)據(jù)庫(kù)中,直至假期結(jié)束
并結(jié)清所有帳目,此時(shí),關(guān)于假期詳細(xì)情況的總結(jié)將轉(zhuǎn)移到市場(chǎng)信息系統(tǒng),其余內(nèi)容將傳送
到歸檔存儲(chǔ)。
3. 對(duì)象模型
對(duì)象模型包含動(dòng)態(tài)部分和靜態(tài)部分。對(duì)象定義的動(dòng)態(tài)部分或稱行為部分側(cè)重于每個(gè)對(duì)象能
夠做什么,它通過(guò)一組操作或方法定義了對(duì)象的行為。
就我個(gè)人而言,我并不認(rèn)為行為對(duì)象模型對(duì)建模有很大的價(jià)值;它更適合作為設(shè)計(jì)工具。
因?yàn)樵S多事件都是與多個(gè)對(duì)象相關(guān)的(例如:旅游者到旅館登記),到底將它與其中的哪個(gè)對(duì)象
相關(guān)聯(lián)純粹屬于設(shè)計(jì)決策。
4. 對(duì)象生存周期歷史
對(duì)象生存周期歷史( U M L稱之為對(duì)象生命線)也關(guān)注于單個(gè)的對(duì)象,但是它是從整體角度
88使用XML 高級(jí)編程
下載
考慮的:它描述了每個(gè)對(duì)象在生存周期內(nèi)所執(zhí)行的操作—如何創(chuàng)建對(duì)象,在對(duì)象的生存周期
中能夠發(fā)生哪些事件,對(duì)象如何響應(yīng)這些事件,什么情況使得它最終被清除。
我發(fā)現(xiàn)對(duì)象生存周期歷史對(duì)于測(cè)試模型的完整性非常有價(jià)值。人們常常會(huì)特別注意一些事
件,而忽視另一些事件—例如,模型可能描述了如何處理假期預(yù)訂,而忽略了如何處理取消
預(yù)訂或要求退款的情況。只有定義了每個(gè)對(duì)象如何進(jìn)入系統(tǒng),以及如何從系統(tǒng)中刪除,你才會(huì)
發(fā)現(xiàn)原來(lái)的考慮可能存在著紕漏。
5. 使用案例
使用案例分析了特定的用戶任務(wù)是如何完成的,例如:預(yù)訂了假期的人如何取消訂單?使
用案例可以與處理模型非常類似,但是它通常側(cè)重于特定用戶的活動(dòng)。
在將業(yè)務(wù)模型化和描述I T系統(tǒng)的內(nèi)部行為方面,用戶案例都非常有用。但是,這兩個(gè)層次
有可能混淆;你最好將這兩者分離,因?yàn)樗鼈兪轻槍?duì)不同的聽(tīng)眾的。雖然如何發(fā)揮使用案例的
作用要根據(jù)實(shí)際情況而確定,但是我所見(jiàn)過(guò)的最有價(jià)值的實(shí)例是將使用案例主要應(yīng)用于用戶與
系統(tǒng)的交互—描述對(duì)話框,例如:“用戶通過(guò)在地圖上點(diǎn)擊說(shuō)明所希望的度假地點(diǎn)。系統(tǒng)將據(jù)
此提供旅館列表,每個(gè)旅館都配以一幅照片,并且注明了旅館的名稱和價(jià)目表。用戶可以點(diǎn)擊
任何旅館,進(jìn)一步了解有關(guān)該旅館的信息。屏幕上顯示的信息中將包含一個(gè)按鈕,用戶可以通
過(guò)它進(jìn)行預(yù)訂⋯⋯”,等等。
U M L為描述使用案例提供了圖形表示法,但是最好的方法是通過(guò)交互式原型,人們常常稱
它為s t o r y b o a r d。
中國(guó)航空網(wǎng) m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(37)