項(xiàng)目實(shí)施過(guò)程中的數(shù)據(jù)管理
6.具體操方式可以有以下幾種:
1) 數(shù)據(jù)錄入人員的工作人員編號(hào),知道了數(shù)據(jù)錄入人員的編號(hào),就知道數(shù)據(jù)的來(lái)源地。
當(dāng)然,實(shí)際工作種存在人員調(diào)動(dòng),替操作(1個(gè)人用另外一個(gè)人的身份進(jìn)入系統(tǒng)數(shù)錄入),這些都有可能需要考慮到,否則可能造成數(shù)據(jù)來(lái)源管理失效。
2)另外一種方式就是直接記錄數(shù)據(jù)錄入的部門編號(hào)。
這種方式弊端就是不能記錄下數(shù)據(jù)的具體操作人員。
其它說(shuō)明:如果系統(tǒng)中引入了工作流產(chǎn)品,數(shù)據(jù)來(lái)源這部分工作可以由工作流來(lái)?yè)?dān)任。具體例子:在現(xiàn)實(shí)的軟件系統(tǒng)中可能存在一個(gè)主數(shù)據(jù)庫(kù)/數(shù)據(jù)中心,若干分?jǐn)?shù) 據(jù)庫(kù)/數(shù)據(jù)中心,系統(tǒng)在每過(guò)一定時(shí)間進(jìn)行數(shù)據(jù)上傳/下載,為了進(jìn)行數(shù)據(jù)合并和控制數(shù)據(jù)的修改,應(yīng)該每個(gè)分?jǐn)?shù)據(jù)中心只能處理修改自己的數(shù)據(jù),可以查詢總數(shù)據(jù) 中心/其他分?jǐn)?shù)據(jù)中心的數(shù)據(jù)。如果沒(méi)有引入數(shù)據(jù)來(lái)源管理(數(shù)據(jù)屬地管理)和數(shù)據(jù)版本的控制機(jī)制,不知道系統(tǒng)在作數(shù)據(jù)中心合并會(huì)怎樣子?
7.數(shù)據(jù)項(xiàng)的分類編碼
數(shù)據(jù)項(xiàng)的分類編碼,實(shí)際上是數(shù)據(jù)項(xiàng)來(lái)源管理的一個(gè)具體延伸。數(shù)據(jù)項(xiàng)編碼的目的就是更快更好的識(shí)別數(shù)據(jù)代表的業(yè)務(wù)意思。一個(gè)典型的例子就是ERP中的BOM表(基本物料清單)。
數(shù)據(jù)項(xiàng)的分類編碼,不只是在系統(tǒng)模型建立上有指導(dǎo)意義,在進(jìn)入系統(tǒng)的業(yè)務(wù)數(shù)據(jù)的規(guī)范化同樣有指導(dǎo)意義。
數(shù)據(jù)項(xiàng)的業(yè)務(wù)編碼和系統(tǒng)編碼分離。業(yè)務(wù)編碼很多時(shí)候只是為了識(shí)別業(yè)務(wù)數(shù)據(jù)的需要,很難保證業(yè)務(wù)數(shù)據(jù)的唯一性要求。而且業(yè)務(wù)編碼可能會(huì)發(fā)生變動(dòng),有些單位的 總體規(guī)劃從調(diào)研到討論制訂、到項(xiàng)目審批通過(guò),再到最終實(shí)施,常常幾年過(guò)去了,需求發(fā)生變化,這種編碼規(guī)則不發(fā)生變動(dòng)幾乎不可能。2000年我參與的一個(gè)企 業(yè)軟件系統(tǒng),就一個(gè)產(chǎn)品編碼規(guī)則2個(gè)月就發(fā)生了5次變動(dòng)。從更長(zhǎng)的時(shí)間范圍內(nèi)來(lái)說(shuō),應(yīng)該考慮數(shù)據(jù)產(chǎn)生時(shí)期問(wèn)題,不同時(shí)間階段產(chǎn)生的業(yè)務(wù)數(shù)據(jù),使用的業(yè)務(wù)規(guī) 則不一樣,數(shù)據(jù)編碼這個(gè)層次很多時(shí)候很難識(shí)別數(shù)據(jù)當(dāng)時(shí)的業(yè)務(wù)環(huán)境。
以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明:
業(yè)務(wù)數(shù)據(jù)表的primary key系統(tǒng)應(yīng)該是系統(tǒng)定義的,而數(shù)據(jù)項(xiàng)的業(yè)務(wù)編碼只能作為索引或者備用鍵使用,這樣就減少了數(shù)據(jù)業(yè)務(wù)編碼規(guī)則的變動(dòng)對(duì)系統(tǒng)影響減少到更小的程度。
8.算法的版本化
本來(lái)我打算在前面的基礎(chǔ)上,再談一下業(yè)務(wù)流程的管理設(shè)置問(wèn)題,不過(guò),現(xiàn)在工作流思想深入人心,我也就跳過(guò)了。我打算從數(shù)據(jù)的核心業(yè)務(wù)處理,算法處理角度來(lái)闡述。
其實(shí)在現(xiàn)實(shí)中的軟件項(xiàng)目中,大家提到的較多的BPR,工作流這些東西,但是很少提到算法這個(gè)單詞。當(dāng)然,不可否認(rèn),很多軟件項(xiàng)目,特別是電子政務(wù)/OA的 業(yè)務(wù)主要是體現(xiàn)在流程/文件上,算法這部分比較簡(jiǎn)單(當(dāng)然,我這樣說(shuō),有人可能不認(rèn)可,暫且就不爭(zhēng)論它了),就沒(méi)有必要去強(qiáng)調(diào)算法的重要性了。
為了避免垃圾數(shù)據(jù)進(jìn)入系統(tǒng),垃圾數(shù)據(jù)出來(lái),有必要對(duì)數(shù)據(jù)進(jìn)行分類管理。正如前面提到的那樣,對(duì)于進(jìn)入系統(tǒng)的數(shù)據(jù),進(jìn)行信任等級(jí)劃分,數(shù)據(jù)來(lái)源的分類;但是 對(duì)于系統(tǒng)出口,為了避免出現(xiàn)垃圾數(shù)據(jù),需要在數(shù)據(jù)處理階段,也要進(jìn)行分類處理,這里就引入了算法的版本化,來(lái)適應(yīng)不同的數(shù)據(jù)/業(yè)務(wù)需要。
在實(shí)際項(xiàng)目中,可能不同信任等級(jí)的數(shù)據(jù),采用不同的算法去處理數(shù)據(jù),這樣才使得數(shù)據(jù)的處理更有針對(duì)性,更符合實(shí)際需要。
從需求變更的角度出發(fā),軟件開(kāi)發(fā)商可以先實(shí)現(xiàn)一些數(shù)據(jù)信任程度低的算法,然后再根據(jù)項(xiàng)目實(shí)際情況,決定是否實(shí)現(xiàn)更高一級(jí)數(shù)據(jù)等級(jí)的算法。在現(xiàn)實(shí)軟件項(xiàng)目, 數(shù)據(jù)信任等級(jí)低的采用的算法也會(huì)簡(jiǎn)單一些,由于需求變更,增加了新的數(shù)據(jù)信任等級(jí)更高的數(shù)據(jù),這時(shí)候可以考慮暫時(shí)采用低等級(jí)的算法進(jìn)行處理,然后再結(jié)合人 工干預(yù),達(dá)到數(shù)據(jù)處理的要求。大家都明白一點(diǎn),算法復(fù)雜,測(cè)試的難度就大,但是使用這些更高等級(jí)的算法的幾率是很少的,處于成本的原因可以把這些算法的實(shí) 現(xiàn)滯后。
當(dāng)然我這樣說(shuō),并不是意味著放棄高等級(jí)的算法,一些根據(jù)項(xiàng)目實(shí)際情形需要來(lái)操作。
數(shù)據(jù)根據(jù)信任程度分成等級(jí),呵呵,這就是所謂工廠方法模式嘛,算法也分成等級(jí)結(jié)構(gòu),這就是所謂的模板方法模式。
數(shù)據(jù)在處理后,應(yīng)該記錄下被使用的算法版本,這樣才便于以后統(tǒng)計(jì)查詢分析或者數(shù)據(jù)挖掘之類工作的開(kāi)展。
例如:在一個(gè)商品交易中,一個(gè)商品可能被購(gòu)買的價(jià)格是正常價(jià)格,節(jié)假日優(yōu)惠價(jià),會(huì)員優(yōu)惠價(jià),在交易流水賬中,應(yīng)該記錄下交易時(shí)候是采用的那個(gè)價(jià)格類型,原始價(jià)格多少,實(shí)際購(gòu)買價(jià)格多少。記錄下原始價(jià)格,是因?yàn)椋唐返脑純r(jià)格本身可能是變化的。
再以拆遷資源計(jì)劃系統(tǒng)為例,房屋補(bǔ)償?shù)膬r(jià)格價(jià)格可能是來(lái)自于管理參數(shù),也可能是來(lái)自于申請(qǐng),實(shí)際到底是來(lái)自于哪個(gè),算法應(yīng)該記錄下來(lái)。
9.業(yè)務(wù)規(guī)則使用的版本化
前面已經(jīng)提到了數(shù)據(jù)錄入的版本化,還有算法的版本化,也就是計(jì)算結(jié)果的版本化。但是還沒(méi)有談到一點(diǎn),到底啥時(shí)間該采用哪個(gè)版本算法。
在J2EE項(xiàng)目中,一般是采用配置文件的方式來(lái)控制版本。從配置管理角度的來(lái)說(shuō),一切都根據(jù)配置文件來(lái)決定使用哪個(gè)版本的數(shù)據(jù)錄入的分級(jí)(數(shù)據(jù)信任程度分級(jí)),然后根據(jù)配置文件決定數(shù)據(jù)處理使用的算法版本。
其實(shí)在J2EE項(xiàng)目中,可以采用類似apache commons-validator這樣的包,來(lái)進(jìn)行數(shù)據(jù)錄入的信任等級(jí)建立。
前面都已經(jīng)提到了從工廠方法模式的角度來(lái)建立數(shù)據(jù)信任等級(jí)制度,但是并沒(méi)有解決到底啥時(shí)間采用哪個(gè)方法處理數(shù)據(jù)。也許有人建議,采用工廠方法模式的思想, 把數(shù)據(jù)當(dāng)成產(chǎn)品,把算法當(dāng)成工廠,來(lái)處理(注意:不是制造)數(shù)據(jù)。這個(gè)想法也許能夠滿足一些系統(tǒng)的需要,但是更多時(shí)候是失效。
為此,我覺(jué)得有必要把算法的分配使用當(dāng)成為一個(gè)業(yè)務(wù)管理策略來(lái)管理,通過(guò)單獨(dú)的業(yè)務(wù)模塊去設(shè)置業(yè)務(wù)的算法管理策略,可以把這些策略保存為配置文件或者直接 保存到數(shù)據(jù)表;在J2EE項(xiàng)目中,常用的方式使用XML的格式保存為配置文件,但是如果這個(gè)策略比較復(fù)雜的時(shí)候建議還是保存到數(shù)據(jù)表。
【項(xiàng)目實(shí)施過(guò)程中的數(shù)據(jù)管理】相關(guān)文章:
3.公路設(shè)計(jì)過(guò)程中的常見(jiàn)問(wèn)題
4.書畫保養(yǎng)過(guò)程中的細(xì)節(jié)問(wèn)題