摘要:這篇文章描述了測(cè)井信息管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)。測(cè)井信息管理系統(tǒng)是基于測(cè)井?dāng)?shù)據(jù)管理和對(duì)測(cè)井?dāng)?shù)據(jù)進(jìn)行圖形化展示的系統(tǒng)。
關(guān)鍵詞:管理信息系統(tǒng);設(shè)計(jì)模式;c#;Sqlserver 2005 ;敏捷開(kāi)發(fā)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)18-4175-03
Design and Implementation of Well Log Information Management System
ZHAO Lin
(Changqing Oilfield Company of CNPC, Xi'an 710018, China)
Abstract: This paper describes design and implementation of well log information management system. Well log information management system is a system which is based on oil field well log data, and graph display.
Key word: Management Information System; GOF; c#; Sqlserver 2005; Agile Development
目前,國(guó)內(nèi)外油田測(cè)井公司使用的測(cè)井儀器及各自處理系統(tǒng)的多樣化致使測(cè)井?dāng)?shù)據(jù)記錄格式非常多,而且格式彼此不兼容。面對(duì)眾多的測(cè)井?dāng)?shù)據(jù)格式,常見(jiàn)的有l(wèi)as,716和wis等,油田勘探開(kāi)發(fā)研究者無(wú)所適從,很多測(cè)井解釋類(lèi)的軟件無(wú)法察看和解釋測(cè)井?dāng)?shù)據(jù),增加了研究工作的難度。另外,由于是文件管理,經(jīng)常出現(xiàn)井和測(cè)井文件脫節(jié)的情況,經(jīng)常出現(xiàn)有井找不到測(cè)井?dāng)?shù)據(jù)的情況。為了解決上面的問(wèn)題,希望能開(kāi)發(fā)一套測(cè)井?dāng)?shù)據(jù)管理和轉(zhuǎn)換系統(tǒng)。該系統(tǒng)可以進(jìn)行常規(guī)的油田工區(qū)井位信息管理,井位測(cè)井?dāng)?shù)據(jù)管理,后面如果有需要可以擴(kuò)展,進(jìn)行其它資料的管理。常規(guī)測(cè)井曲線文件的導(dǎo)入和轉(zhuǎn)換為符合研究者使用的標(biāo)準(zhǔn)格式,同時(shí),可以導(dǎo)出轉(zhuǎn)換為常用的專(zhuān)業(yè)格式測(cè)井曲線文件。
1 系統(tǒng)設(shè)計(jì)
本軟件采用c/s模式,前端客戶(hù)端軟件操作,后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器。軟件體系架構(gòu)采用三層架構(gòu)設(shè)計(jì),設(shè)計(jì)圖如圖1軟件架構(gòu)圖所示。三層架構(gòu)設(shè)計(jì),便于軟件的開(kāi)發(fā)和維護(hù),實(shí)現(xiàn)“高內(nèi)聚,低耦合”的思想。
1.1模塊設(shè)計(jì)
通過(guò)和用戶(hù)交流,同時(shí)參與到用戶(hù)實(shí)際工作中,經(jīng)過(guò)交流和分析,確定了軟件的模塊結(jié)構(gòu)如下圖2所示。同時(shí),采用Mindjet MindManager工具心靈圖(mind map)的來(lái)進(jìn)行思路整理,同時(shí)和甲方進(jìn)行交流溝通,提高了交流的準(zhǔn)確性和精確性。
圖2 軟件模塊圖
1.2界面設(shè)計(jì)
軟件設(shè)計(jì)開(kāi)發(fā)中,軟件的界面設(shè)計(jì)和布局相當(dāng)重要,因?yàn)橹挥泻玫慕缑嬖O(shè)計(jì)和用戶(hù)體驗(yàn),軟件才有可能被用戶(hù)接受和認(rèn)可。好的軟件設(shè)計(jì),對(duì)于用戶(hù)來(lái)說(shuō)感覺(jué)不到人為的設(shè)計(jì),而是認(rèn)為一切都那么自然,舒服,就跟空氣對(duì)于我們一樣,離不開(kāi),但有感覺(jué)不到它的存在。在軟件設(shè)計(jì)的時(shí)候遵循下面的理念和原則:
“Dont make me think”原則(不讓用戶(hù)思考的原則)。軟件設(shè)計(jì)中,盡可能的減少用戶(hù)的操作和思考,讓用戶(hù)做到輕松使用軟件和工作。
軟件操作風(fēng)格和習(xí)慣和常用的辦公軟件office的風(fēng)格一致,采用了ribbon模式減少用戶(hù)的培訓(xùn)和學(xué)習(xí)。
1.3標(biāo)準(zhǔn)設(shè)計(jì)
為了增加軟件的通用性和標(biāo)準(zhǔn)性,增加產(chǎn)品的競(jìng)爭(zhēng)力。制定并公開(kāi)了本系統(tǒng)的測(cè)井曲線格式標(biāo)準(zhǔn)。這樣其他公司只需要做特定的動(dòng)態(tài)庫(kù),將所需要的測(cè)井?dāng)?shù)據(jù)文件轉(zhuǎn)換為軟件給定格式的文件。就可以在本系統(tǒng)中使用和編輯操作。方便了用戶(hù)的使用和后期的維護(hù)和擴(kuò)展。
結(jié)合常用的測(cè)井?dāng)?shù)據(jù)格式文件和標(biāo)準(zhǔn),參考了加拿大測(cè)井協(xié)會(huì)的LAS(測(cè)井ASCII標(biāo)準(zhǔn))。制定了符合用戶(hù)需要的測(cè)井?dāng)?shù)據(jù)格式。
Struct CurveInfo
{string Name ; //曲線名稱(chēng)
string Unit; //單位
string DepthUnit; //深度單位
double InvalidateValue; //無(wú)效值
double BeginDepth; //起始深度
double EndDepth; //終止深度
double Step; //間隔深度
double[] Values; //值列表
}
基于這個(gè)標(biāo)準(zhǔn),可以將用戶(hù)的測(cè)井?dāng)?shù)據(jù),轉(zhuǎn)換為軟件所需要的數(shù)據(jù),通過(guò)對(duì)應(yīng)的軟件接口函數(shù),讀取并圖形展示。
2 系統(tǒng)實(shí)現(xiàn)
2.1 數(shù)據(jù)庫(kù)實(shí)現(xiàn)
下面,數(shù)據(jù)庫(kù)的部分?jǐn)?shù)據(jù)表信息。
1)油田區(qū)塊信息表
表名稱(chēng):WORKAREA_INFO_TABLE
表說(shuō)明:油田區(qū)塊信息表
表1
2)井位信息表
表名稱(chēng):WELL_INFO_TABLE
表說(shuō)明: 井位信息表
表2
2.2 測(cè)井格式轉(zhuǎn)換實(shí)現(xiàn)
為了實(shí)現(xiàn)幾種主要的測(cè)井?dāng)?shù)據(jù)格式文件的轉(zhuǎn)換,軟件采用了抽象工廠(Abstract Factory)模式設(shè)計(jì),來(lái)實(shí)現(xiàn)測(cè)井曲線文件的數(shù)據(jù)加載,獲取曲線名稱(chēng)列表和獲取曲線數(shù)據(jù)信息。具體的接口定義和對(duì)實(shí)現(xiàn)類(lèi)如下。
//測(cè)井曲線數(shù)據(jù)讀取和處理文件接口類(lèi)
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加載曲線文件
GetCurveNames(ref String[] CurveName); //獲取曲線名稱(chēng)列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //獲取給定名稱(chēng)曲線信息
}
派生并實(shí)現(xiàn)716格式文件測(cè)井曲線讀取類(lèi)
Cg716WellLogDataProcessor
{……}
派生并實(shí)現(xiàn) LAS格式文件測(cè)井曲線讀取類(lèi)
CgLASWellLogDataProcessor
{……}
另外,在開(kāi)發(fā)中,為了選擇合理的文件讀取類(lèi),采用了工廠模式(Factory Method)來(lái)選擇合理的文件讀取處理類(lèi),提高了軟件的可讀性和可維護(hù)性。
//測(cè)井?dāng)?shù)據(jù)文件工程類(lèi)
CgWellLogDataFactory
{//根據(jù)文件名稱(chēng)獲取文件讀取處理類(lèi),716文件的擴(kuò)展名為716。Las文件的擴(kuò)展名為las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 應(yīng)用實(shí)例
3.1工區(qū)井位管理
軟件采用了工區(qū)井位的模式來(lái)管理井位和測(cè)井曲線,合理的分組處理,極大地方便了用戶(hù)數(shù)據(jù)管理和操作。樹(shù)狀結(jié)構(gòu)管理,方便了用戶(hù)的操作和應(yīng)用研究,用戶(hù)比較滿意。
3.2測(cè)井?dāng)?shù)據(jù)的圖形展示
在數(shù)據(jù)的讀取和存儲(chǔ)的基礎(chǔ)上,通過(guò)調(diào)用UserControl控件,在其上實(shí)現(xiàn)了測(cè)井曲線數(shù)據(jù)的圖形展示,如圖3所示。其中兩個(gè)測(cè)井?dāng)?shù)據(jù)曲線展示,一個(gè)為線性道展示,一個(gè)是對(duì)數(shù)道展示。符合石油行業(yè)的圖形展示規(guī)范,滿足用戶(hù)勘探開(kāi)發(fā)研究的需要。
4 結(jié)束語(yǔ)
測(cè)井信息管理信息系統(tǒng)在該公司使用后,用戶(hù)體驗(yàn)良好,工作效率有了極大的提高。同時(shí),該企業(yè)的信息負(fù)責(zé)部門(mén)對(duì)軟件的開(kāi)發(fā)模式和架構(gòu)也比較滿意,對(duì)于軟件的后期維護(hù)和擴(kuò)展比較滿意。以上就是本次軟件系統(tǒng)開(kāi)發(fā)的經(jīng)驗(yàn)總結(jié),拋磚引玉,有不足之處,希望批評(píng)指正。
參考文獻(xiàn):
[1] 王翔.設(shè)計(jì)模式:基于C#的工程化實(shí)現(xiàn)及擴(kuò)展[M].北京:電子工業(yè)出版社,2009.
[2] Robert C Martin .敏捷軟件開(kāi)發(fā)-原則、模式與實(shí)踐[M].鄧輝,譯.北京:清華大學(xué)出版社,2003.
[3] 施伯樂(lè).數(shù)據(jù)庫(kù)系統(tǒng)教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.計(jì)算機(jī)圖形學(xué)[M].北京:電子工業(yè)出版社,2005.
[6] JungHyun Han.計(jì)算機(jī)圖形學(xué)-基于3D圖形開(kāi)發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2013.
[7] 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例[M].北京:人民出版社,2003.endprint
//測(cè)井曲線數(shù)據(jù)讀取和處理文件接口類(lèi)
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加載曲線文件
GetCurveNames(ref String[] CurveName); //獲取曲線名稱(chēng)列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //獲取給定名稱(chēng)曲線信息
}
派生并實(shí)現(xiàn)716格式文件測(cè)井曲線讀取類(lèi)
Cg716WellLogDataProcessor
{……}
派生并實(shí)現(xiàn) LAS格式文件測(cè)井曲線讀取類(lèi)
CgLASWellLogDataProcessor
{……}
另外,在開(kāi)發(fā)中,為了選擇合理的文件讀取類(lèi),采用了工廠模式(Factory Method)來(lái)選擇合理的文件讀取處理類(lèi),提高了軟件的可讀性和可維護(hù)性。
//測(cè)井?dāng)?shù)據(jù)文件工程類(lèi)
CgWellLogDataFactory
{//根據(jù)文件名稱(chēng)獲取文件讀取處理類(lèi),716文件的擴(kuò)展名為716。Las文件的擴(kuò)展名為las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 應(yīng)用實(shí)例
3.1工區(qū)井位管理
軟件采用了工區(qū)井位的模式來(lái)管理井位和測(cè)井曲線,合理的分組處理,極大地方便了用戶(hù)數(shù)據(jù)管理和操作。樹(shù)狀結(jié)構(gòu)管理,方便了用戶(hù)的操作和應(yīng)用研究,用戶(hù)比較滿意。
3.2測(cè)井?dāng)?shù)據(jù)的圖形展示
在數(shù)據(jù)的讀取和存儲(chǔ)的基礎(chǔ)上,通過(guò)調(diào)用UserControl控件,在其上實(shí)現(xiàn)了測(cè)井曲線數(shù)據(jù)的圖形展示,如圖3所示。其中兩個(gè)測(cè)井?dāng)?shù)據(jù)曲線展示,一個(gè)為線性道展示,一個(gè)是對(duì)數(shù)道展示。符合石油行業(yè)的圖形展示規(guī)范,滿足用戶(hù)勘探開(kāi)發(fā)研究的需要。
4 結(jié)束語(yǔ)
測(cè)井信息管理信息系統(tǒng)在該公司使用后,用戶(hù)體驗(yàn)良好,工作效率有了極大的提高。同時(shí),該企業(yè)的信息負(fù)責(zé)部門(mén)對(duì)軟件的開(kāi)發(fā)模式和架構(gòu)也比較滿意,對(duì)于軟件的后期維護(hù)和擴(kuò)展比較滿意。以上就是本次軟件系統(tǒng)開(kāi)發(fā)的經(jīng)驗(yàn)總結(jié),拋磚引玉,有不足之處,希望批評(píng)指正。
參考文獻(xiàn):
[1] 王翔.設(shè)計(jì)模式:基于C#的工程化實(shí)現(xiàn)及擴(kuò)展[M].北京:電子工業(yè)出版社,2009.
[2] Robert C Martin .敏捷軟件開(kāi)發(fā)-原則、模式與實(shí)踐[M].鄧輝,譯.北京:清華大學(xué)出版社,2003.
[3] 施伯樂(lè).數(shù)據(jù)庫(kù)系統(tǒng)教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.計(jì)算機(jī)圖形學(xué)[M].北京:電子工業(yè)出版社,2005.
[6] JungHyun Han.計(jì)算機(jī)圖形學(xué)-基于3D圖形開(kāi)發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2013.
[7] 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例[M].北京:人民出版社,2003.endprint
//測(cè)井曲線數(shù)據(jù)讀取和處理文件接口類(lèi)
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加載曲線文件
GetCurveNames(ref String[] CurveName); //獲取曲線名稱(chēng)列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //獲取給定名稱(chēng)曲線信息
}
派生并實(shí)現(xiàn)716格式文件測(cè)井曲線讀取類(lèi)
Cg716WellLogDataProcessor
{……}
派生并實(shí)現(xiàn) LAS格式文件測(cè)井曲線讀取類(lèi)
CgLASWellLogDataProcessor
{……}
另外,在開(kāi)發(fā)中,為了選擇合理的文件讀取類(lèi),采用了工廠模式(Factory Method)來(lái)選擇合理的文件讀取處理類(lèi),提高了軟件的可讀性和可維護(hù)性。
//測(cè)井?dāng)?shù)據(jù)文件工程類(lèi)
CgWellLogDataFactory
{//根據(jù)文件名稱(chēng)獲取文件讀取處理類(lèi),716文件的擴(kuò)展名為716。Las文件的擴(kuò)展名為las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 應(yīng)用實(shí)例
3.1工區(qū)井位管理
軟件采用了工區(qū)井位的模式來(lái)管理井位和測(cè)井曲線,合理的分組處理,極大地方便了用戶(hù)數(shù)據(jù)管理和操作。樹(shù)狀結(jié)構(gòu)管理,方便了用戶(hù)的操作和應(yīng)用研究,用戶(hù)比較滿意。
3.2測(cè)井?dāng)?shù)據(jù)的圖形展示
在數(shù)據(jù)的讀取和存儲(chǔ)的基礎(chǔ)上,通過(guò)調(diào)用UserControl控件,在其上實(shí)現(xiàn)了測(cè)井曲線數(shù)據(jù)的圖形展示,如圖3所示。其中兩個(gè)測(cè)井?dāng)?shù)據(jù)曲線展示,一個(gè)為線性道展示,一個(gè)是對(duì)數(shù)道展示。符合石油行業(yè)的圖形展示規(guī)范,滿足用戶(hù)勘探開(kāi)發(fā)研究的需要。
4 結(jié)束語(yǔ)
測(cè)井信息管理信息系統(tǒng)在該公司使用后,用戶(hù)體驗(yàn)良好,工作效率有了極大的提高。同時(shí),該企業(yè)的信息負(fù)責(zé)部門(mén)對(duì)軟件的開(kāi)發(fā)模式和架構(gòu)也比較滿意,對(duì)于軟件的后期維護(hù)和擴(kuò)展比較滿意。以上就是本次軟件系統(tǒng)開(kāi)發(fā)的經(jīng)驗(yàn)總結(jié),拋磚引玉,有不足之處,希望批評(píng)指正。
參考文獻(xiàn):
[1] 王翔.設(shè)計(jì)模式:基于C#的工程化實(shí)現(xiàn)及擴(kuò)展[M].北京:電子工業(yè)出版社,2009.
[2] Robert C Martin .敏捷軟件開(kāi)發(fā)-原則、模式與實(shí)踐[M].鄧輝,譯.北京:清華大學(xué)出版社,2003.
[3] 施伯樂(lè).數(shù)據(jù)庫(kù)系統(tǒng)教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.計(jì)算機(jī)圖形學(xué)[M].北京:電子工業(yè)出版社,2005.
[6] JungHyun Han.計(jì)算機(jī)圖形學(xué)-基于3D圖形開(kāi)發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2013.
[7] 冀振燕.UML系統(tǒng)分析設(shè)計(jì)與應(yīng)用案例[M].北京:人民出版社,2003.endprint