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

基于AOP的軟件缺陷監測框架的設計與實現

2018-01-08 22:08:00邊偉成
電子設計工程 2017年16期
關鍵詞:檢測方法設計

邊偉成

(江蘇省信息中心 江蘇 南京 210013)

基于AOP的軟件缺陷監測框架的設計與實現

邊偉成

(江蘇省信息中心 江蘇 南京 210013)

隨著軟件規模的不斷擴大,軟件質量越發成為軟件開發企業關注的重點。關于如何減少軟件缺陷,提高軟件可靠性是所有軟件開發者追求的永恒主題。本文基于AOP技術設計和提出了一種新的軟件缺陷檢測框架,其具體由方法監控層、數據過濾層和邏輯表現層組成,自底向上傳遞數據。該框架可實現軟件方法的實時監控、自定義監控規則、對于缺陷按照嚴重等級進行分類顯示等功能。最后通過與實際項目相整合,設計測試用例,測試結果表明本文提出的框架具有可行性。

軟件缺陷;AOP;軟件質量;監測框架

隨著互聯網技術的高速發展,Web類應用軟件發展趨勢迅猛。由于Web類應用軟件產品更新頻率高、測試周期短、使用范圍廣,在實際的Web軟件開發過程中,往往或多或少的會存在軟件缺陷[1-2],因此需要一套可靠的軟件缺陷檢測框架對開發過程中遺留的疏漏進行有效的監控。因此本文研究的主要目的就是針對Web應用提出一套具有易用性,可操作性,可維護性和可擴展性的軟件缺陷檢測框架。其可以實現在不破壞原有軟件項目工程的基礎上,嫁接到軟件工程之上,使其具有缺陷檢測的功能。

文中的主要貢獻是基于AOP技術設計和提出了一種新的軟件缺陷檢測框架。該框架由監控層,數據過濾層和邏輯表現層組成。每個層次結構分工明確,自底向上傳遞數據,其相比于一般軟件缺陷檢測軟件具有可操作,去冗余,可定制,結果易于理解等優勢。在缺陷檢測的過程中,web項目可能出現方法檢測信息冗余,運用布隆算法對其進行了數據過濾的過程,其相比較于一般算法,節省了大量空間,去除了在缺陷檢測過程中的冗余數據。最后針對一個實際應用的項目,運用本文設計的軟件缺陷檢測框架進行了整合,通過預留一定的軟件缺陷,設計了幾個測試用例對測試結果進行詳細的分析,驗證了該框架的實用性。

1 AOP技術介紹

1.1 AOP概述

AOP(Aspect-Oriented Programming)技術[3-4],即面向方面編程技術,是對于面向對象編程(OOP)技術的完善和彌補。AOP通過一種“橫切”技術將對象內部解剖開來,從而將公共行為的多個類的重復代碼封裝到同一個模塊之中得到一個可重用模塊,叫做方面,即“Aspect”。所謂“方面”[5]就是將那些與系統核心業務無關但卻被業務模塊共同調用所封裝起來的類,這樣就可以大大減少代碼冗余,使得各個模塊之間的耦合度降低,實現對于系統可操作性和可維護性的提升。AOP主要應用于權限驗證、日志管理、事務響應處理等。

1.2 AOP工具介紹

各種技術雖然都是實現AOP技術,并且都實現了AOP技術的各項技術指標,但不同的AOP工具在底層機制上卻是大相徑庭。本文主要采用的是Spring AOP 技術[6]。

Spring AOP技術是整個Spring框架當中的一部分,其也能夠作為一個獨立模塊而存在。從本質上來講,Spring AOP通過運用動態代理技術來實現了AOP。它的具體體現形式是利用IoC的機制,并且整合利用了AOP聯盟中的通用AOP接口。在運用Spring AOP來實現AOP時,首先需要對于其spring的 xml配置文件添加配置pointcut,然后利用Spring中的Interceptor作為觸發條件[7]。開發者可以自由定義切面類,Interceptor的實現類似于實現AOP的advice,開發人員在進行Interceptor的開發過程中,需要實現通用的AOP接口。

2 基于AOP的軟件缺陷檢測框架

與大多數軟件框架不同,本文設計的基于AOP的軟件缺陷檢測框架可以在編碼階段之外將其添加到項目工程當中,在不影響原先設計邏輯的情況下,發現軟件在運行過程中遇到的缺陷和異常。其具有監控方法、獲取數據、數據過濾、缺陷分類、轉譯顯示等功能。

2.1 總體架構設計

該軟件缺陷檢測框架主要針對B/S架構的Web軟件所開發,可針對不同的軟件缺陷進行檢測和記錄,其主要由方法監控層、數據過濾層和邏輯表現層三層結構構成,如圖1所示。

圖1 總體框架圖

2.2 關鍵模塊實現

2.2.1 方法監控層

方法監控層位于架構最底層,主要通過AOP技術獲得執行的方法剖面。再對切點的前后進行操作,記錄下方法的相關信息,其中主要包括方法名、執行參數、返回值、操作者屬性和操作結果等,原理如圖2所示。

圖2 方法監控層原理圖

在AOP編程中,對業務邏輯的各個部分進行隔離,監控每個方法所操作的主體和客體,即對于操作者、操作內容進行監控,獲得執行方法時的相關參數。該部分運用到的AOP技術主要是基于Spring AOP所實現的。通過切面類定義獲得整個Web應用程序執行方法的切面,并對于其中的方法名,操作對象,返回值等一系列要素進行檢測提取,以便于數據過濾層對其監控到的方法的相關數據進行篩選操作。

2.2.2 數據過濾層

該層位于架構的中間層,主要作用是對從監控層獲取的監控信息進行過濾,主要通過布隆算法[8-9]來實現數據過濾。另外需要構建一個規則庫,對于監控層所提交過來的數據進行規則匹配,只有滿足規則庫中規則的方法,才能繼續傳遞到邏輯表現層,進行表現輸出。同時提供接口供開發人員自行定義規則來選擇需要監控的方法,用以提高該軟件缺陷檢測框架的擴展性,具體過程如圖3所示。

圖3 數據過濾層原理圖

1)實現數據去冗余功能

通過布隆算法去除冗余,相比于其它的數據結構,布隆過濾器在空間和時間方面都有巨大的優勢。布隆過濾器存儲空間和插入/查詢時間都是常數[10]。布隆過濾器不需要存儲元素本身,在某些對保密要求非常嚴格的場合有優勢。

由于該軟件缺陷檢測框架是屬于B/S的架構,所以在同一時刻可能有不同的用戶對于同一方法進行訪問,或者是同一用戶由于操作失誤使得項目工程多次執行同一個方法,從而造成監控數據產生大量冗余。運用布隆過濾器,對于以上的情況進行過濾。通過將相鄰極短時間的多次同一用戶對于同一方法的執行數據作為冗余數據,對其進行篩選過濾,只保留其中固定的一部分。

2)實現數據規則匹配功能

主要對于方法監控層傳來的方法數據是否需要監控進行判定,通過與規則庫中已經指定的規則進行匹配,得出對該方法數據是需要監控還是丟棄的判定。本文使用KMP算法[11-13]實現字符串匹配,通過讀取存儲在數據庫中的規則,進行依次匹配,篩選出符合規則的方法保留下來,否則將數據丟棄。通過分析目標字符串,預先計算出每個位置發生不匹配時所需GOTO的下一個比較位置,整理出來一個next數組。

2.2.3 邏輯表現層

由于本文所研究的軟件缺陷檢測框架,其應用范圍不僅針對于軟件開發人員,還針對于普通用戶以及一般的網絡管理員的日常監管和使用,所以在該層中,需要對過濾層過濾后的數據進行處理封裝歸類,使之可以更加直觀的呈現在用戶的面前。需要使該框架的應用更具有普適性,用戶不需要去閱讀大量的傳統Web日志文件,而是直接對于經過過濾后的被監控方法到底因何種操作,發生了什么結果,給予檢測顯示結果。對于軟件運行中出現的軟件缺陷進行合理分類,可根據軟件缺陷的級別將其分為嚴重,中等,低3個級別,便于開發人員按照優先級和嚴重程度進行修改和調試。該邏輯表現層的配置主要需要配置兩點內容,其中包括軟件缺陷的直觀顯示和軟件缺陷的分級定義。

1)針對需要進行缺陷檢測的Web系統,定義一個配置文件,記錄下其每一個方法對應的描述以及其設計操作參數。在獲得數據過濾層的數據后,取得監控到的方法,在該層中與其描述相匹配。根據匹配后的結果對原始數據進行轉譯,使得最后呈現出的缺陷結果可以更為直觀。

2)依據具體被監控方法按照表1進行分類,為所有監控的方法添加所屬分類,使整個軟件缺陷檢測框架的顯示結果一目了然,便于程序開發人員針對問題具體出現的優先級進行修改調試。其將缺陷檢測日志存入數據庫中。

表1 缺陷類別定義表

3 基于AOP的軟件缺陷檢測框架測試

3.1 測試用例設計

該實例是基于為某研究所開發的一個項目信息管理平臺的安全子系統。由于該系統的特殊背景,使其存在組角色和根角色,在業務和管理上可能有所不同,一個用戶可能對應多個角色。由于系統的復雜度高,業務邏輯強,所以程序員在編碼的過程中可能殘留有影響軟件正常使用的多角色的訪問控制不當,程序邏輯錯誤等軟件缺陷[14],需要監控用戶的使用行為,記錄下他們的操作行為,需要記錄{時間、空間、主體、客體/對象、行為、結果}。考慮到軟件日常使用過程中可能遇到的幾個主要缺陷問題,對于可能出現軟件缺陷的模塊進行了測試。為了更加貼近真實環境,所以在項目中有意識的預留了幾個不同級別的有代表性的軟件缺陷[15],用以測試該軟件缺陷檢測框架的可用性。

通過刪除項目用例對于軟件中存在的參數格式的軟件缺陷進行監控,此設計用例的前提條件是,在按照項目標號刪除項目的方法中,應該使用字符串作為輸入參數而軟件實現時采用的整型作為參數輸入的情況。該用例的設計旨在測試該軟件缺陷檢測[16]框架對于B類缺陷,即參數輸入控制有誤上是否能夠實現其預期的檢測功能,具體的測試用例設計如表2。

表2 刪除項目用例

3.2 測試用例結果分析

通過運行測試用例的結果可以看出,本文提出的基于AOP的軟件缺陷檢測框架對于系統邏輯混亂,從而造成的權限控制異常,可以實現缺陷檢測,對于未授予權限的用戶越權操作漏洞能夠有效的監控。程序本身存在易造成程序崩潰的軟件缺陷,可以進行監控,并且進行提示。對于上面嚴重的軟件缺陷,該框架在檢測的過程中能達到預期效果。

另外,對于軟件缺陷嚴重程度僅次于A的B、C類軟件缺陷,該軟件缺陷檢測框架也能夠判斷出其是否符合具體預期效果,從而在程序運行的過程中,對于由于開發中疏忽所產生的B、C類缺陷進行相應的檢測和記錄。

圖4 測試用例結果

4 結束語

Web應用隨互聯網得到了快速發展,隨著市場和用戶需求越來越多,其結構和功能變得愈加復雜,如何保證Web產品的質量成為一個重要的課題。本文設計提出了一種基于AOP的軟件缺陷檢測框架,提出了一種針對Web軟件缺陷的測試方案。該方案基于AOP軟件缺陷檢測框架[17],通過在真實的使用環境下對于用戶操作的監控,實現各種復雜的測試任務。本文所設計的數據過濾層,對于數據的過濾主要采用布隆過濾器,這一點節省了空間,提高了程序運行效率,但是在數據的規則匹配中,仍然采用傳統的字符串匹配的算法。在以后的工作中,爭取對于這一方面再進行優化,運用更為合理的數據結構和算法減少其時間和空間消耗。

[1]杜珂.軟件缺陷管理及缺陷跟蹤系統研究[D].西安:西安電子科技大學,2006.

[2]王衛蔚.以WEB為基礎探討系統防御框架的構建[J].網絡安全技術與應用,2015(10):79-79.

[3]張逸.AOP技術研究及其在.Net中的實現[D].成都:四川大學,2005.

[4]Introducing Spring AOP[C]//Pro Spring 2.5.Apress,2008:147-197.

[5]Liang X,Xue B,Huang M,et al.Application of join points management mechanism in spring in AOP[C]//International Conference on Computer Science and Network Technology.IEEE,2014.

[6]溫沁潤,王英杰,劉秀海.基于SpringAOP和AspectJ的工作流實現[J].統計與管理,2013(2):169.

[7]林恒建.Spring基于XML配置文件的AOP[J].福建電腦,2012,28(11):160-161.

[8]Lu J,Yang T,Wang Y,et al.One-hashing bloom filter[C]//IEEE,International Symposium on Quality of Service.IEEE,2015.

[9]黃濤.布隆過濾器在網頁去重中的研究與應用[D].大連:大連海事大學,2013.

[10]王鵬超,杜慧敏,曹廣界,等.基于布隆過濾器的精確匹配算法設計與實現[J].計算機科學,2015,42(S1):429-434.

[11]魯宏偉,魏凱,孔華鋒.一種改進的KMP高效模式匹配算法[J].華中科技大學學報:自然科學版,2006,34(10):41-43.

[12]湯亞玲,安徽.KMP算法中next數組的計算方法研究[J].計算機技術與發展,2009,19(6):98-101.

[13]李莉,江育娥,林劼,等.基于KMP算法的改進算法KMPP[J].計算機工程與應用,2016(8):33-37.

[14]李沖.基于WEB的多角色協同工作的軟件配置項管理系統[D].南京:南京理工大學圖書館,2012.

[15]Jiang Y,Member,Li M,et al.Software defect detection with ROCUS[J].Journal of Computer Science&Technology,2011,26(2):328-342.

[16]張勇,管聲啟.基于小波提升分解的帶鋼表面缺陷檢測[J].西安工程大學學報,2013,27(4):483-487.

[17]周戀玲,張靜.PCB板缺陷檢測中圖像配準技術研究[J].電子設計工程,2016,24(3):166-168.

Design and implementation of software defects monitoring framework based on AOP

BIAN Wei-cheng
(Jiangsu Information Center,Nanjing 210013,China)

As the expanding of software size,software quality becomes the focus of software companies.How to reduce software defects and improve software reliability is the eternal theme that all software developers to pursue.This paper designs and proposes a new framework for software defects based on AOP.It consists of the method of monitoring layer,data filtering and logical presentation layer.It transfers data with bottom-up methods.It can achieve real-time monitoring,custom monitoring rules and displaying different types of defects in accordance with the defect level.At last,integrating it with actual program,the design of test case,test result indicates that the experiments proves the feasibility of the framework.

software defects; AOP; software quality; monitoring framework

TN0

A

1674-6236(2017)16-0027-05

2016-06-17稿件編號:201606117

邊偉成(1963—),男,浙江諸暨人,高級工程師。研究方向:電子政務網絡安全、網站、數據中心及大數據、機房環境等。

猜你喜歡
檢測方法設計
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 国产夜色视频| 扒开粉嫩的小缝隙喷白浆视频| 国产欧美视频在线| 亚洲高清日韩heyzo| 久996视频精品免费观看| 无码视频国产精品一区二区| 影音先锋丝袜制服| 热re99久久精品国99热| 国产免费久久精品44| 91视频首页| 欧美不卡在线视频| 天天色综网| 亚洲成人高清无码| 国产无码网站在线观看| 成人在线综合| 视频二区亚洲精品| 国产极品美女在线观看| 国产麻豆永久视频| 国产综合另类小说色区色噜噜| 日韩av电影一区二区三区四区| 91精品国产麻豆国产自产在线| 免费va国产在线观看| 国产成人AV大片大片在线播放 | 在线观看av永久| 狠狠五月天中文字幕| 男人的天堂久久精品激情| 日本精品视频一区二区| 无码内射中文字幕岛国片| 国产国模一区二区三区四区| 四虎永久在线| 久久国产拍爱| 一级毛片免费观看久| 亚洲欧美一区二区三区蜜芽| 三上悠亚精品二区在线观看| 九九久久精品国产av片囯产区| 日韩精品专区免费无码aⅴ| 少妇精品在线| 日韩久久精品无码aV| 久久国产精品麻豆系列| 99热这里只有免费国产精品 | 免费亚洲成人| 国产精品人莉莉成在线播放| 国产日韩精品欧美一区灰| 国产在线观看一区精品| 久久久久久国产精品mv| 国产精品综合久久久 | 欧美性爱精品一区二区三区| 亚洲色欲色欲www在线观看| 福利视频一区| 亚洲成人网在线观看| 亚洲最新网址| 欧美A级V片在线观看| 亚洲成人免费在线| 亚洲欧美综合在线观看| 亚洲欧美极品| 精品国产免费第一区二区三区日韩| 制服丝袜亚洲| 国产麻豆91网在线看| 国产一级裸网站| 中文字幕乱码中文乱码51精品| 久久黄色视频影| 中文字幕乱码中文乱码51精品| 四虎影视8848永久精品| 88av在线看| 亚洲综合中文字幕国产精品欧美| 国产人成乱码视频免费观看| 黄色片中文字幕| 青青草91视频| 97国产精品视频自在拍| 国产精品福利社| 亚国产欧美在线人成| 国产精品开放后亚洲| 亚洲精品自在线拍| 免费国产好深啊好涨好硬视频| 国产成人无码久久久久毛片| 国产小视频a在线观看| 青青草一区| 中国精品久久| 青青久在线视频免费观看| 日本欧美一二三区色视频| 国产福利在线免费| 欧美精品亚洲精品日韩专|