![軟件架構項目報告_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/7/c29e0b36-78c1-42d7-abd8-d13018b3b348/c29e0b36-78c1-42d7-abd8-d13018b3b3481.gif)
![軟件架構項目報告_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/7/c29e0b36-78c1-42d7-abd8-d13018b3b348/c29e0b36-78c1-42d7-abd8-d13018b3b3482.gif)
![軟件架構項目報告_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/7/c29e0b36-78c1-42d7-abd8-d13018b3b348/c29e0b36-78c1-42d7-abd8-d13018b3b3483.gif)
![軟件架構項目報告_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/7/c29e0b36-78c1-42d7-abd8-d13018b3b348/c29e0b36-78c1-42d7-abd8-d13018b3b3484.gif)
![軟件架構項目報告_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-8/7/c29e0b36-78c1-42d7-abd8-d13018b3b348/c29e0b36-78c1-42d7-abd8-d13018b3b3485.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、軟件架構項目報告目錄1 項目概述42 需求分析42.1系統(tǒng)用例圖和流程圖42.2功能需求52.3非功能性需求62.3.1性能需求62.3.2 質量需求62.3.3安全性需求62.4可行性分析62.4.1技術可行性72.4.2經(jīng)濟可行性72.4.3操作可行性73 總體設計74 詳細設計74.1感知哈希算法74.1.1算法概述74.1.2 算法詳細步驟84.2 Levenshtein距離算法104.2.1算法概述104.2.2生成圖片的指紋114.2.3計算編輯距離,得出相似度134.3 歐式距離相似度算法164.3.1算法概述164.3.2算法步驟164.4 加權最優(yōu)解194.4.1算法概述19
2、4.4.2算法步驟195 系統(tǒng)實現(xiàn)205.1界面設計215.2系統(tǒng)集成215.2.1系統(tǒng)目錄結構215.2.2 structs具體實現(xiàn)225.3系統(tǒng)環(huán)境和運行235.3.1系統(tǒng)環(huán)境235.3.2運行效果236 測試271 項目概述2 需求分析2.1系統(tǒng)用例圖和流程圖使用基于場景的用例分析方法可知,在操作系統(tǒng)的場景中用戶可進行的操作如下:(1)用戶加載目標股票的TXT文件,將目標股票的TXT文件生成股票走勢圖(2)將目標走勢圖與其他走勢圖進行比較,計算兩兩之間的相似度(3)選取與目標走勢圖相似度最高的走勢圖(4)輸出結果并保存系統(tǒng)用例圖如下所示:相應的流程圖如下:2.2功能需求通過上面對系統(tǒng)的分
3、析可知,系統(tǒng)核心的功能主要有如下幾種:(1) 批量導入樣本文件;(2) 形成走勢圖,即股市中的K線圖;(3) 計算相似度,并選取相似度最大的走勢圖;因此可以將整個系統(tǒng)分為兩大功能模塊,功能模塊圖如下所示:2.3非功能性需求2.3.1性能需求由于系統(tǒng)運行需要導入大量的數(shù)據(jù),因此要求系統(tǒng)在算法實現(xiàn)上能保證盡可能的提供運行效率,降低反應時間。同時,本系統(tǒng)是對股市行情的研究比較,開發(fā)的系統(tǒng)要求結果準確。2.3.2 質量需求對于系統(tǒng)的相關質量的屬性需求如下表:質量屬性序列號 質量屬性要求說明 1 有導入目標股票的TXT文件方法2 有三種不同算法來計算相似度3界面簡潔大方,方便操作 2.3.3安全性需求1
4、. 服務器應該在合適溫度、適度的環(huán)境下工作,避免劇烈的震動;2. 各種電源線和數(shù)據(jù)線的鋪設要合理而安全,避免出現(xiàn)意外脫接現(xiàn)象的發(fā)生;3. 服務器所在地區(qū)應保持電壓穩(wěn)定及電源的持續(xù)供應,盡量避免高頻率的人為斷電現(xiàn)象(例如:錯拉電閘、保險絲熔斷等),以保持服務器中數(shù)據(jù)的一致性;4. 當提前獲知斷電時間時,應在網(wǎng)頁上及時發(fā)布相關信息(例如:服務器將于幾時幾分關閉),避免站點的突然關閉;5. 服務器管理員應確保服務器密碼不泄漏;6. 服務器所在房間應做好安全防盜工作,避免盜竊現(xiàn)象的發(fā)生。2.4可行性分析2.4.1技術可行性系統(tǒng)實現(xiàn)依靠相對比較熟悉的HTML、JavaScript、java語言,功能實現(xiàn)
5、也相對簡單。因此完成此項目的風險較小。2.4.2經(jīng)濟可行性本系統(tǒng)所用到的應用軟件、硬件系統(tǒng)都易于獲得.因此,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質量的特點,可以節(jié)省不少人力、物力及財力。所以,從經(jīng)濟的角度來看,該系統(tǒng)可行。2.4.3操作可行性本系統(tǒng)是直接面對用戶的,而用戶往往對計算機并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機交互界面。要實現(xiàn)這一點,就要求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的界面,從而保證系統(tǒng)的易用性。界面簡潔友好,操作方便。3 總體設計4 詳細設計4.1感知哈希算法4.1.1算法概述感知哈希算法pHash(Perce
6、ptual Hash Algorithm), 意思是為圖片生成一個指紋(字符串格式), 兩張圖片的指紋越相似, 說明兩張圖片就越相似.。為降低均值對算法的影響程度,pHash算法使用離散余弦變換(DCT)來獲取圖片的低頻成分。而對于兩張圖片相似度的計算則是基于漢明距離的。離散余弦變換(DCT)是種圖像壓縮算法,它將圖像從像素域變換到頻率域。然后一般圖像都存在很多冗余和相關性的,所以轉換到頻率域之后,只有很少的一部分頻率分量的系數(shù)才不為0,大部分系數(shù)都為0(或者說接近于0)。漢明距離是以理查德衛(wèi)斯里漢明的名字命名的。在信息論中,漢明距離描述的是兩個n長碼字x=(x1x2xn),y=(y1y2yn
7、)之間的距離,Dx,y=k=1nxkyk其中,表示模2加運算,xk0,1,yk0,1.D(x,y)表示兩碼字在相同位置上不同碼符號的數(shù)目的總和,它能夠反映兩碼字之間的差異,進而提供碼字之間的相似程度的客觀依據(jù)。4.1.2 算法詳細步驟(1)縮小尺寸:pHash以小圖片開始,但圖片大于8*8,32*32是最好的。這樣做的目的是簡化了DCT的計算,而不是減小頻率。具體的代碼實現(xiàn)如下圖:(2)簡化色彩:將圖片轉化成灰度圖像,進一步簡化計算量。下圖是轉化為灰度圖像的函數(shù)grayscale()的實現(xiàn);(3)計算DCT:計算圖片的DCT變換,得到32*32的DCT系數(shù)矩陣。下圖是進行二維DCT變換的函數(shù)a
8、pplyDCT()的實現(xiàn)。(4)縮小DCT:雖然DCT的結果是32*32大小的矩陣,但我們只要保留左上角的8*8的矩陣,這部分呈現(xiàn)了圖片中的最低頻率。(5)計算平均值:如同均值哈希一樣,計算DCT的均值。(6)計算hash值:這是最主要的一步,根據(jù)8*8的DCT矩陣,設置0或1的64位的hash值,大于等于DCT均值的設為“1”,小于DCT均值的設為“0”。組合在一起,就構成了一個64位的整數(shù),這就是這張圖片的指紋。(7)對比圖片指紋:得到圖片的指紋后, 就可以對比不同的圖片的指紋, 計算出64位中有多少位是不一樣的。一般情況下,如果不相同的數(shù)據(jù)位數(shù)不超過5, 就說明兩張圖片很相似, 如果大于
9、10, 說明它們是兩張不同的圖片。這里是基于漢明距離來對相似度進行計算,定義的相似度計算公式為:sim=1-漢明距離位數(shù)下面兩張圖片分別是對漢明距離和相似度的實現(xiàn)函數(shù),具體如下:. 4.2 Levenshtein距離算法4.2.1算法概述我們這里所要研究的相似度算法是這樣進行的,UML圖如上。4.2.2生成圖片的指紋在我們的程序中,生成圖片哈希值的方法是produceFingerPrint(),他返回的是一個String類型的字符串類型。這個方法里面主要涉及6個部分:(1)讀取圖片實現(xiàn)這個功能的方法是通過readImage()方法來完成的,這個方法封裝在ImageRead類中,它通過獲取圖片的
10、路徑名來得到該圖片。代碼如下:(2)將圖片縮小到固定尺寸因為我們得到的圖片可能會大小不一致,多以我們需要將他們縮小成一致的格式,這里我們將他們縮小成8*8的尺寸,總共64個像素,除去了圖片的細節(jié),只保留了結構、明暗等基本信息,摒棄不同尺寸、比例帶來的圖片差異。實現(xiàn)方法是:thumb(BufferedImage source, int width,int height, boolean b),代碼如下:(3)簡化色彩將縮小后的圖片,轉為64級灰度。也就是說,所有像素點總共只有64種顏色。通過灰度值的計算來實現(xiàn)的,方法為rgbToGray()(4)計算平均值計算64個像素的灰度平均值,通過方法av
11、erage()來實現(xiàn)。代碼如下:(5)比較像素灰度將每個像素的灰度,與平均值進行比較。大于或等于平均值,記為1;小于平均值,記為0。(6)計算哈希值將上一步的比較結果,組合在一起,就構成了一個64位的整數(shù),這就是這張圖片的指紋。組合的次序并不重要,只要保證所有圖片都采用同樣次序就行了。代碼如下:4.2.3計算編輯距離,得出相似度計算圖片指紋的相似度。進而算出圖片的相似度。(1)編輯距離概述Levenshtein 距離,又稱編輯距離,指的是兩個字符串之間,由一個轉換成另一個所需的最少編輯操作次數(shù)。許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符。編輯距離的算法是首先由俄國
12、科學家Levenshtein提出的,故又叫Levenshtein Distance。(2)舉例說明a.首先是有兩個字符串,這里寫一個簡單的 abc和abeb.將字符串想象成下面的結構。A處是一個標記,為了方便講解,不是這個表的內(nèi)容。abcabcabe0123a1A處b2e3c.來計算A處出得值它的值取決于:左邊的1、上邊的1、左上角的0.按照Levenshtein distance的意思:上面的值和左面的值都要求加1,這樣得到1+1=2。A處由于是兩個a相同,左上角的值加0.這樣得到0+0=0。這是后有三個值,左邊的計算后為2,上邊的計算后為2,左上角的計算為0,所以A處取他們里面最小的0.d
13、.于是表成為下面的樣子abcabcabe0123a10b2B處e3在B處會同樣得到三個值,左邊計算后為3,上邊計算后為1,在B處由于對應的字符為a、b,不相等,所以左上角應該在當前值的基礎上加1,這樣得到1+1=2,在(3,1,2)中選出最小的為B處的值。e.于是表就更新了abcabcabe0123a10b21e3C處C處計算后:上面的值為2,左邊的值為4,左上角的:a和e不相同,所以加1,即2+1,左上角的為3。在(2,4,3)中取最小的為C處的值。f.于是依次推得到abc0123a1A處0D處1G處2b2B處1E處0H處1e3C處2F處1I處1I處:表示abc 和abe 有1個需要編輯的操
14、作。這個是需要計算出來的。同時,也獲得一些額外的信息。A處:表示a 和a 需要有0個操作。字符串一樣B處:表示ab 和a 需要有1個操作。C處:表示abe 和a 需要有2個操作。D處:表示a 和ab 需要有1個操作。E處:表示ab 和ab 需要有0個操作。字符串一樣F處:表示abe 和ab 需要有1個操作。G處:表示a 和abc 需要有2個操作。H處:表示ab 和abc 需要有1個操作。I處:表示abe 和abc 需要有1個操作。g.計算相似度先取兩個字符串長度的最大值maxLen,用1-(需要操作數(shù)除maxLen),得到相似度。例如abc 和abe 一個操作,長度為3,所以相似度為1-1/3
15、=0.666(3)具體實現(xiàn)具體實現(xiàn)代碼如下:4.3 歐式距離相似度算法4.3.1算法概述該算法的核心思想是計算兩條直線的歐氏距離。4.3.2算法步驟運用道格拉斯-普克算法將折線簡化,提取出折線的特征點。步驟如下,(1)在曲線首尾兩點間虛連一條直線,求出其余各點到該直線的距離,如下圖(1)。(2)選其最大者與閾值相比較,若大于閾值,則離該直線距離最大的點保留,否則將直線兩端點間各點全部舍去,如下圖(2),第4點保留。(3)依據(jù)所保留的點,將已知曲線分成兩部分處理,重復第1、2步操作,迭代操作,即仍選距離最大者與閾值比較,依次取舍,直到無點可舍去,最后得到滿足給定精度限差的曲線點坐標,如下圖(3)
16、、(4)依次保留第6點、第7點,舍去其他點,即完成線的化簡。具體的代碼實現(xiàn)如下:將兩條折線A,B垂直平移至X軸,如下圖二。將其中一條折線A縮放一定比例得到A;使得A上所有點的平均值與B相等,如下圖三。通過A上的點向B做垂線,求出垂距H,得出累計垂距Hs如下圖四。相似度用1/Hs表示,當Hs=0時,取相似度為1,算法實現(xiàn)為代碼二、代碼三。具體的代碼實現(xiàn)如下:4.4 加權最優(yōu)解4.4.1算法概述上面三種算法或多或少有相應的側重,因此我們小組決定根據(jù)上面三種算法提供一個加權的最優(yōu)解。在獲得三種算法得出的相關的相似度值后,為每種算法賦予相關的加權值,通過加權運算獲得最優(yōu)的結果。4.4.2算法步驟(1)
17、獲得三面三種算法的結果;(2)進行加權運算。分別給算法A(感知哈希算法)、算法B(Levenshtein距離算法)和算法C(歐式距離相似度算法)權數(shù)為0.5、0.3、0.2。 具體代碼實現(xiàn)如下:5 系統(tǒng)實現(xiàn)整個系統(tǒng)架構思想是基于構件的軟件開發(fā)思想,通過運用structs框架,將前端界面設計和后臺功能實現(xiàn)相結合。具體的界面設計和系統(tǒng)集成如下介紹。5.1界面設計界面設計秉承簡單實用的設計思想,將整個系統(tǒng)需求的具體功能在首界面就全部展現(xiàn)出來了。同時,為增加用戶的體驗好感度,運用了相關的JavaScript技術實現(xiàn)。具體的界面效果如下圖:5.2系統(tǒng)集成5.2.1系統(tǒng)目錄結構整個項目既有前臺界面編寫,又有后臺算法實現(xiàn),由于不同的模塊代碼編寫的人員不同,最終需要進行代碼的集成整合。通過對代碼的集成最后形成的代碼系統(tǒng)目錄如下圖所示:5.2.2 structs具體實現(xiàn)Structs部分的實現(xiàn)包括相關的VO層、action、service以及structs配置文件實現(xiàn)。在這里就不對其一一截圖展示了,其中核心
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年民族打擊樂項目可行性研究報告
- 特種保健鹽項目可行性研究報告立項申請報告模板
- 2025年高靜壓風管式機組行業(yè)深度研究分析報告
- 2025年中國冰淇凌杯行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 生產(chǎn)線整體搬遷技改項目環(huán)境影響報告書環(huán)評報告精彩范本
- 2025年聚酯漆稀釋劑項目投資可行性研究分析報告
- 十佳學生申請書
- 電子商務平臺的運營數(shù)據(jù)分析與應用
- 空調(diào)用塑封電機項目可行性研究報告
- 電力工程施工中的培訓與教育內(nèi)容
- LED大屏技術方案(適用于簡單的項目)
- 城市自來水廠課程設計
- 重慶市2024年小升初語文模擬考試試卷(含答案)
- 2024智慧城市數(shù)據(jù)采集標準規(guī)范
- Lesson 6 What colour is it(教學設計)-2023-2024學年接力版英語三年級下冊
- 歷年國家二級(Python)機試真題匯編(含答案)
- 第五單元任務二《準備與排練》教學設計 統(tǒng)編版語文九年級下冊
- 虧損企業(yè)減虧專項治理方案
- 《垃圾發(fā)電廠爐渣處理技術規(guī)范》
- 設計質量、進度、服務保證措施
- 2024北京海淀高三一模英語試卷(含參考答案)
評論
0/150
提交評論