999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種文件轉換器的設計與實現

2015-09-21 01:29:26秦奕青
網絡安全與數據管理 2015年7期
關鍵詞:數據庫功能方法

秦奕青

(北京信息科技大學,北京 100101)

1 ARFF-DB轉換器的應用背景

ARFF-DB轉換器的應用背景來自于機器學習領域的Weka系統[1]。Weka把ARFF格式的文本文件轉換為數據庫的記錄格式,形成由實例(Instance)和屬性(Attribute)組成的關系,再通過機器學習,發現規則或者概念。

ARFF(Attribute-Relation File Format)是 Weka 使 用的數據文件輸入格式,其樣例如下。

%1.Title:Iris Plants Database

%

%2.Sources:

%(a)Creator:R.A.Fisher

% (b)Donor:MichaelMarshall(MARSHALL%PLU@io.arc.nasa.gov)

%(c)Date:July,1988

%

@RELATION iris

@ATTRIBUTE sepallength NUMERIC

@ATTRIBUTE sepalwidth NUMERIC

@ATTRIBUTE petallength NUMERIC

@ATTRIBUTE petalwidth NUMERIC

@ATTRIBUTE class{Iris-setosa,Iris-versicolor,Iris-virginica}

@DATA

5.1,3.5,1.4,0.2,Iris-setosa

4.9,3.0,1.4,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

4.6,3.1,1.5,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

5.4,3.9,1.7,0.4,Iris-setosa

4.6,3.4,1.4,0.3,Iris-setosa

5.0,3.4,1.5,0.2,Iris-setosa

4.4,2.9,1.4,0.2,Iris-setosa

4.9,3.1,1.5,0.1,Iris-setosa

文件由兩部分組成,第一部分被稱作文件頭(header),第二部分被稱作數據(data)。Header部分是由@RELATION和@ATTRIBUTE組成,其中,@RELATION聲明了數據實例所在的關系名稱,例如:iris(鳶尾花);@ATTRIBUTE聲明了數據中屬性的名稱及其類型,例如:屬性名sepallength(花萼長度),屬性的類型是numeric(數值型)。 屬性類型除了 numeric,還包括 real、integer、nominal、string 和 date,其中,real和 integer均 被 視為numeric;nominal型屬性值屬于離散值,可以通過枚舉方式給出所有屬性值(例如:class屬性,其值在{}中列出,屬于名詞型屬性,具有離散特性);date屬性值應符合ISO-8601,格式為YYYY-MM-DD。Data部分由@DATA導出,每個實例的相關屬性值為一行,上例中每個實例的屬性值均與@ATTRIBUTE部分定義的屬性一一對應,還可以由其他表示實例屬性值的方法[1]表示。本例中給出了10個實例數據,每個實例都有5個屬性值。更多ARFF文件格式的內容請參見參考文獻[1]。

2 軟件開發方法

隨著軟件開發需求的增加,各種軟件開發方法和技術層出不窮。各類驅動式[2]、敏捷編程[3]軟件開發方法不僅被廣泛應用,而且其變體和擴展也被深入研究[4-5],以期提高軟件開發效率和軟件質量。在開發文件轉換器中,同樣使用了用例驅動開發方法實現主界面、基于GUI的開發方法實現程序主題框架。盡管如此,開發使用的核心和基本方法仍然是經典的逐步求精軟件開發方法,需求分析和設計主要采用自頂向下方法,實現階段則采用自底向上方法。

自頂向下的程序設計思想,就是在系統分析與設計中,采用不斷分解的方式,把一個大問題逐步分解為若干個小問題,直到所有的小問題都只具有簡單的邏輯功能,可以用程序語言直接實現,而不需要再分解。

自頂向下的程序設計思想既可以采用自頂向下的實現方法,也可以采用自底向上的實現方法。自頂向下的實現方法指在程序實現時,先實現上層功能較復雜的程序邏輯功能,其中所需要的下層功能較簡單的程序邏輯功能可以以一個空體代替(即stub)。自底向上的程序實現方法指在程序實現時,按照分析的結果,先從下層代表簡單小問題的邏輯開始實現,逐步向上,依次實現由各個小問題模塊支撐的較大問題模塊,直至整個程序功能實現。

在ARFF-DB轉換器實現中,采用自頂向下的分析和設計方法、自底向上的程序實現方法,這種分析和解決問題的方式,符合人們的思維和實踐習慣。

3 系統分析與設計

按照軟件工程的觀點,程序開發過程最基本的步驟包括:系統分析、系統設計和系統實現。本文按照這一步驟進行ARFF-DB轉換器設計與開發。

3.1 系統基本功能分析

系統分析是通過分析系統的功能,搞清系統“做什么”。最簡單、最基本的一種分析方法就是通過說明目標系統的輸入 I(input)、 處理 P (process) 和輸出 O(output),反映系統的功能。通過分析,ARFF-DB轉換器的IPO如圖1所示。

圖1 系統分析的IPO圖表示

3.2 系統功能設計:自頂向下,逐步求精

系統設計考慮如何實現系統分析中明確的系統功能,即:系統“如何做”才能實現 ARFF文件到DB文件的轉換。要使用自頂向下的設計方法,把大問題分解為小問題,直到每個小問題都有了明確的解決方案,設計過程即告完成。因為自頂向下的設計過程會把大問題、較大問題逐步分解為較小的、更接近系統實現的問題,所以這個過程也被稱為逐步求精。

在系統分析的IPO中,要從輸入的ARFF文件處理“文件解析”模塊開始考慮。首先,系統讀入一個ARFF文件;然后對ARFF文件的內容進行解析,把@RELATION中的關系名字、@ATTRIBUTE中的屬性名字和類型作為創建數據庫表結構的依據,能夠把@DATA中的每一行實例數據作為一個記錄添加到數據庫文件中。“文件解析”和相應的輸出部分就是對頂層的“轉換處理”向下的一步求精。進一步向下求精出“形成文件對象”子模塊。

“文件解析”子模塊的輸出,將其轉換為相應的數據庫,需要以解析的三個結果為輸入,創建數據庫表,并將實例數據作為記錄寫到數據庫中,然后得到相應的數據庫文件。這一部分可以定義為“創建數據庫”子模塊。它也是對頂層的“轉換處理”向下的一步求精。同樣地,對于“創建數據庫表”子模塊,可以進一步向下求精地設計為“建立數據庫連接”和“訪問數據庫”。

綜上所述,通過自頂向下的逐步求精設計過程后,得到的設計結果如圖2所示。

圖2 “轉換處理”自頂向下的逐步求精設計結果

到此為止,自頂向下的設計基本上將“轉換處理”的問題逐步求精、分解到可以通過程序直接處理的若干子問題。然后將根據這個設計結果,使用具體的程序設計語言和工具來實現ARFF-DB轉換器。

4 程序設計與實現

根據系統分析和設計結果,開始進行系統的程序實現,這時的問題就是程序設計語言和開發工具 (平臺)的選擇。因為筆者對Java語言較熟悉,所以使用Java作為程序設計語言,選用jdk1.6.0_02。數據庫系統使用MySQL[6]。另外,對于開發平臺和工具,這里使用的是命令行,編輯器使用textpad。

4.1 程序組織和結構設計

轉換器程序使用了包的結構。程序的結構由包和其中的類形成,用樹的形式表示如表1。

表1 轉換器程序的包組織和類設計

4.2 界面的程序設計與實現

ARFF-DB轉換器的主界面效果如圖3所示。

圖3 ARFF-DB轉換器的主界面和內容顯示效果

4.3 ARFF文件及其解析的設計與實現

依據系統分析和設計的結果,程序設計實現了ARFF文件的封裝和讀入。程序定義ARFFFile類,用于封裝ARFF文件,并支持對arff方法文件的讀入。設計ARFFFileAnanlysis類,定義 analyze方法,用于實現 ARFF文本的解析邏輯。

4.4 數據庫的創建與讀寫

在“文件解析”的過程中,輸入 ARFF文件,輸出中給出數據庫的相關信息,包括數據庫關系名稱、數據庫屬性名稱和屬性值類型、數據庫關系中的記錄。轉換器設計實現了ArffDbCreator類,把解析出的數據關系名稱和數據屬性名稱以及值類型作為輸入,創建數據庫,輸出得到一個數據庫表;然后,將數據記錄信息讀入到該數據庫表中,并通過讀出記錄,測試數據庫的建立和讀寫操作是否成功。這部分功能的實現主要涉及到從Java通過JDBC連接,訪問相應的數據庫。

4.5 主邏輯設計、實現以及程序的整合

本文在實現階段采用自底向上的實現方法,即首先實現下層的程序邏輯(子功能),然后再通過整合各個子功能,實現較高層次的程序邏輯,直至實現程序的整體邏輯功能。

目前已經設計實現了“文件解析”邏輯和“數據庫創建及寫入”邏輯,現在要設計一個程序主邏輯,以便將上述兩個底層邏輯整合到一起,完成轉換器程序的整體功能,即:從ARFF文件到數據庫表的轉換。

主邏輯設計主要考慮的是用戶使用“轉換器”系統的方式以及要求的系統功能。這里,用戶使用的是GUI,通過GUI設定的菜單進行功能選擇。這個過程可以通過用例及用例圖來描述[5]。如圖4所示。

圖4 主程序邏輯設計中的用例

5 總結

ARFF-DB轉換器實現了從ARFF文件到數據庫文件的基本轉換功能。本文采用自頂向下方法完成了ARFF-DB轉換器的系統分析和設計,采用自底向上方法完成了程序實現。今后要對處理arff文件中的殘缺值問題給出更好的解決方案。還要在ARFF-DB轉換器基礎上實現DB-ARFF轉換器,使得轉換器功能更完善。

[1]WITTEN I H,FRANK E.數據挖掘:實用機器學習技術[M].北京:機械工業出版社,2007.

[2]彭順順,周傳生.基于數據驅動的圖形界面開發方案[J].微型機與應用,2013,32(19):1-3.

[3]王剛,程建平.面向業務的敏捷界面定制構件的設計[J].微型機與應用,2012,31(7):11-13.

[4]王飛,郭淵博,郝耀輝,等.面向用例安全關鍵系統開發方法研究[J].計算機應用與軟件,2013,30(8):134-138.

[5]謝東強.敏捷軟件開發的雙迭代模型[J].計算機應用與軟件,2012,29(6):176-178.

[6]LARMAN C.UML和模式應用[M].北京:北京機械工業出版社,2006.

猜你喜歡
數據庫功能方法
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 伊人网址在线| 麻豆国产精品一二三在线观看| 国产精品女人呻吟在线观看| 九九久久精品免费观看| 国产高清在线观看91精品| 欧美日韩一区二区在线播放 | 色哟哟精品无码网站在线播放视频| 免费人欧美成又黄又爽的视频| 欧美亚洲另类在线观看| 丁香五月激情图片| 欧美日韩国产系列在线观看| 国产中文在线亚洲精品官网| 亚洲成人一区二区三区| 国产特级毛片aaaaaaa高清| 亚洲视屏在线观看| 亚洲欧洲AV一区二区三区| 久久精品无码一区二区日韩免费| 日本精品αv中文字幕| 国产精品亚洲va在线观看| 中文字幕啪啪| 午夜性爽视频男人的天堂| 欧美一区国产| 狠狠v日韩v欧美v| 97在线视频免费观看| 性视频一区| 波多野结衣视频一区二区| 人妻出轨无码中文一区二区| 国产女人在线| 国产成人精品一区二区三在线观看| 欧美h在线观看| 人妻丰满熟妇αv无码| 91午夜福利在线观看| 新SSS无码手机在线观看| 无码福利视频| 99激情网| 国产欧美日韩免费| 国产精品污视频| 欧美一级夜夜爽| 国产人成在线视频| 黄色三级网站免费| 91视频99| 99久久精彩视频| 国产精品久久久久久影院| 日韩无码视频播放| 伊在人亚洲香蕉精品播放| 欧美成人精品在线| jizz亚洲高清在线观看| 2021天堂在线亚洲精品专区| 国产女同自拍视频| 日韩精品高清自在线| 亚洲日韩精品综合在线一区二区| 九九久久精品国产av片囯产区| 伊人婷婷色香五月综合缴缴情| 18黑白丝水手服自慰喷水网站| 无码啪啪精品天堂浪潮av| 中文天堂在线视频| 亚洲精品片911| 一区二区三区四区日韩| 精品乱码久久久久久久| 亚洲国产成人麻豆精品| 国产精品xxx| 香蕉eeww99国产精选播放| 日韩 欧美 国产 精品 综合| 国产成人h在线观看网站站| 欧美在线一级片| 亚洲动漫h| 九色视频线上播放| 国产91在线|中文| 浮力影院国产第一页| 欧美成人手机在线观看网址| 国产一二三区在线| 亚洲无线观看| 制服无码网站| 国产91九色在线播放| 国产精品熟女亚洲AV麻豆| 性色一区| 亚洲一区二区三区在线视频| 中文字幕久久波多野结衣| 华人在线亚洲欧美精品| 国产欧美日韩精品综合在线| 99视频在线看| 国产内射在线观看|