• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于社會網(wǎng)絡的軟件缺陷預防的研究

      2015-09-26 05:17:42侯中偉任洪敏上海海事大學信息工程學院上海201306
      現(xiàn)代計算機 2015年21期
      關鍵詞:軟件缺陷測試者社團

      侯中偉,任洪敏(上海海事大學信息工程學院,上?!?01306)

      基于社會網(wǎng)絡的軟件缺陷預防的研究

      侯中偉,任洪敏
      (上海海事大學信息工程學院,上海201306)

      0 引言

      在軟件開發(fā)的過程中,難免會遇到各種各樣的缺陷問題,而這些缺陷的產(chǎn)生,在不同程度上給軟件企業(yè)帶來了極大的困擾。為了使軟件企業(yè)部門能夠生產(chǎn)出高質(zhì)量的產(chǎn)品,在缺陷方面,各領域也做了大量的研究,包括各種軟件缺陷管理工具的開發(fā)以及應用,有效地管理缺陷,這在很大程度上幫助開發(fā)者或許測試者盡量避免缺陷問題的產(chǎn)生。然而,軟件缺陷很難一次性解決,更不可能全部解決,需要開發(fā)者或測試者從軟件開發(fā)的初始階段就要盡量預防,了解清楚缺陷問題的產(chǎn)生,包括缺陷產(chǎn)生的根本原因、分布密度,以及缺陷在整個軟件開發(fā)過程中的嚴重性等級、優(yōu)先級等。只有這樣,才能生產(chǎn)出更高效的產(chǎn)品,減少不必要的人力、財力的浪費。

      1 軟件缺陷數(shù)據(jù)的存儲

      軟件缺陷數(shù)據(jù)的存儲可以說在整個軟件開發(fā)過程中起著關鍵作用,它不僅能夠有效地實現(xiàn)數(shù)據(jù)的存儲,而且好的數(shù)據(jù)存儲方式有助于開發(fā)者或測試者快速地提取、操作數(shù)據(jù),從根本上提高軟件缺陷分析與預防的效率。

      首先,我們給缺陷數(shù)據(jù)定義幾個比較重要的屬性,如表1。

      表1 缺陷數(shù)據(jù)定義表

      從表中我們可以直觀地看出缺陷數(shù)據(jù)定義過程中用到的一些重要屬性,例如,通過Title屬性我們可以直接找到某缺陷,Type屬性可以很明確地告知我們哪些缺陷為同一類型缺陷,從而找到缺陷的歸屬,Cause屬性、Severity屬性、Priority屬性指出缺陷產(chǎn)生原因以及不同程度的等級,這從一定程度上可以讓開發(fā)者或測試者了解缺陷內(nèi)容。

      根據(jù)列出的缺陷數(shù)據(jù)屬性,我們運用兩種方法存儲數(shù)據(jù),一種方法利用關系數(shù)據(jù)庫MySQL,另一種方法利用圖形數(shù)據(jù)庫Neo4j,比較兩者在存儲數(shù)據(jù)過程中的區(qū)別。

      關系數(shù)據(jù)庫中,根據(jù)需求,我們可以給出E-R圖,實體Person與Defect的關系如圖1。

      圖1 E-R圖

      用戶與缺陷之間是多對多的關系,一個用戶可以管理多個缺陷,而每個缺陷的管理者可能由多個用戶共同來管理;用戶與用戶、缺陷與缺陷之間利用本身擁有的屬性關聯(lián),這里由于屬性過多就不一一列出,只是簡單列出用戶與缺陷之間的關系。

      圖形數(shù)據(jù)庫中,根據(jù)需求,我們也可以給出數(shù)據(jù)庫的圖形表現(xiàn)形式,即將點、邊、屬性聯(lián)系在一起,構成一個基于社會網(wǎng)絡的缺陷數(shù)據(jù)模型,如圖2。

      圖2 基于社會網(wǎng)絡的缺陷數(shù)據(jù)模型

      該缺陷數(shù)據(jù)模型比較容易理解:由用戶和缺陷兩個實體組成,然后用戶實體通過特殊的關系與缺陷實體連接。Person實體包含兩個關系:多個Person實例之間通過Colleague關系連接,但不能連接自己,Management連接到最近的Defect實體;Defect實體也包含兩個關系:多個Defect實體之間通過next關系連接,可以表示主線上的下一個Defect實體,Management連接到最近的Person實體。

      通過對數(shù)據(jù)的存儲結構圖,可以看出:若缺陷數(shù)據(jù)之間有一定的關系網(wǎng),那么利用關系數(shù)據(jù)庫描述這一過程會很復雜,不僅占用存儲空間,而且查找效率也不是很高,所以利用圖形數(shù)據(jù)庫,可以通過邊的關系很容易找到缺陷數(shù)據(jù);若給數(shù)據(jù)庫表添加一些額外的數(shù)據(jù),我們很可能需要重構關系數(shù)據(jù)庫,帶來不必要的麻煩,而使用圖形數(shù)據(jù)庫的話,我們只需要動態(tài)地添加幾個節(jié)點或邊。

      2 軟件缺陷中的社會網(wǎng)絡劃分

      從傳統(tǒng)意義上講,社交網(wǎng)絡指的是由一些個人或組織通過他們之間的關系所構成的一個復雜的網(wǎng)絡結構,而這種關系可以是同學、朋友、同事或親戚。本文則依靠這種特殊的網(wǎng)絡結構,利用社交網(wǎng)絡的劃分算法對網(wǎng)絡結構中的軟件缺陷與缺陷之間的關系進行分析,從而得到一定的缺陷社團劃分。

      本文主要利用Newman等人的優(yōu)化模塊度的快速算法,即FN算法,它是一個啟發(fā)式算法,主要引入了一個模塊性函數(shù)Q,通過最大化Q函數(shù),來實現(xiàn)缺陷社團的發(fā)現(xiàn)。

      FN算法的具體步驟如下:

      (1)網(wǎng)絡中的每個缺陷節(jié)點作為一個小網(wǎng)絡,這樣n個缺陷節(jié)點的網(wǎng)絡就有n個小網(wǎng)絡,初始化后,eij=缺陷節(jié)點i與j相連,表示缺陷節(jié)點i 0其他的度,2m表示網(wǎng)絡結構中邊的總數(shù));

      (2)當兩個節(jié)點之間有邊時,對節(jié)點進行合并,然后計算模塊度增量ΔQ,其中ΔQ=eij+eji-2aiaj=2(eij-aiaj);

      (3)選擇ΔQ變化最大的缺陷節(jié)點進行合并,更新矩陣eij;

      (4)重復執(zhí)行第(2)步與第(3)步,直到整個原網(wǎng)絡構成為一個大的社團。

      從一定程度上講,軟件缺陷的有效劃分一部分取決于軟件缺陷數(shù)據(jù)的存儲,另一部分則取決于社會網(wǎng)絡的社團劃分算法。在算法優(yōu)化改進方面,我們在FN算法的步驟(2)中,主要是將圖形數(shù)據(jù)庫Neo4j自帶的一些求最短路徑的方法運用到社會網(wǎng)絡中節(jié)點合并的過程,這樣不僅可以減少我們的工作量,而且還可以在很大程度提高算法的效率,從而對缺陷數(shù)據(jù)進行有效的社團劃分。那么根據(jù)上面論述的FN算法步驟和存儲的缺陷數(shù)據(jù),我們可以初步得到FN算法的層次聚類樹,如圖3。

      3 結語

      本文區(qū)別于傳統(tǒng)的軟件缺陷的分析與預防方法,引入社會網(wǎng)絡的相關概念,即利用社會網(wǎng)絡的社團劃分算法對軟件缺陷進行劃分。一方面借助圖形數(shù)據(jù)庫Neo4j實現(xiàn)軟件缺陷的存儲,減少內(nèi)存的占有率,提高軟件缺陷數(shù)據(jù)的存儲效率;另一方面利用社團網(wǎng)絡的聚類算法FN算法,劃分軟件缺陷的社團,進而有助于開發(fā)者或測試者提前預知缺陷存在的模塊,提高軟件開發(fā)的效率。

      圖3 FN算法的層次聚類樹

      [1]劉海,郝克剛.軟件缺陷數(shù)據(jù)的定義[J].計算機應用,2008(1).

      [2]閏振興,鄭駿.軟件缺陷屬性度量與軟件過程管理方法研究[J].計算機與數(shù)字工程,2010.

      [3](美)Houman Younessi.面向對象的軟件缺陷管理[M].趙文耘.機械工業(yè)出版,2004.

      [4]尹相樂,馬力,關昕.軟件缺陷分類的研究[J].計算機工程與設計,2008,29(7):4910-4912.

      [5]鄒琴.動態(tài)社交網(wǎng)絡中社區(qū)劃分算法研究[D].碩士學位論文,2012(1):23~24

      [6]王偉欣.復雜網(wǎng)絡社團結構挖掘算法的研究[D].碩士學位論文,2013(6):28

      [7]Newman M E J.Fast algorithm for detecting community structure in networks[J].Physical Review E,2004,69(6):066-133.

      [8]Clauset A.Finding local community structure in networks[J].Physical Review E,2005,72(2):026-132

      [9]Girvan M,Newman M E J.Community structure in social and biological networks[J].Proceedings of the National Academy of Sciences,2002,99(12):7821-7826

      [10]Neo4j.org官方網(wǎng)站.Neo4j中文[S/OL].[2014-6-10].http://www.neo4j.org.cn/.

      Software Defects;Data Storage;Social Network;Partitioning Algorithm;Defects Prevention

      Research on the Software Defects Prevention Based on Social Network

      HOU Zhong-wei,Ren Hong-min
      (College of Information Engineering,Shanghai Maritime University,Shanghai 201306)

      1007-1423(2015)21-0011-03

      10.3969/j.issn.1007-1423.2015.21.003

      侯中偉(1988-),女,山東鄒城人,碩士研究生,研究方向為軟件開發(fā)方法與軟件項目管理

      2015-05-05

      2015-07-01

      隨著軟件需求的不斷增加,軟件規(guī)模也不斷地擴大,軟件缺陷問題接踵而來。如何有效地預防軟件缺陷,成為軟件開發(fā)過程中重要的一部分。從兩方面論述軟件缺陷處理問題,一方面是軟件缺陷數(shù)據(jù)的存儲問題,另一方面是利用社會網(wǎng)絡的社團劃分算法劃分歷史軟件缺陷,找到缺陷的隸屬社團,根據(jù)缺陷的隸屬社團,開發(fā)者或測試者可以得到缺陷與缺陷之間的隸屬關系以及缺陷產(chǎn)生的根源,從而更好地預防缺陷,大大提高軟件產(chǎn)品質(zhì)量。

      軟件缺陷;數(shù)據(jù)存儲;社會網(wǎng)絡;社團劃分算法;缺陷預防

      任洪敏(1969-),男,上海浦東人,博士,副教授,研究方向為軟件體系結構、構件技術、軟件復用、過程工程等

      With the increasing demand of software,software size has continued to expand,software defects follow.How to effectively prevent software defects has become an import part of the software development process.Discusses two ways to deal with the problem of software defects,one is the storage problem of the data in the software defects,the other is using the partitioning algorithm of social network to divide the history of software defects and finding their membership associations,according to their membership associations,developer or tester can get the affiliation between defects and defects and the root of defects,so as to better prevent defects,greatly improve the quality of software products.

      猜你喜歡
      軟件缺陷測試者社團
      繽紛社團
      基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
      搜救犬幼犬挑選測試
      基于NPE-SVM的軟件缺陷預測模型
      最棒的健美操社團
      軍事文摘(2017年16期)2018-01-19 05:10:15
      指紋收集器
      開源程序的軟件缺陷分布特征的量化分析研究
      K-BOT拼插社團
      中學生(2016年13期)2016-12-01 07:03:51
      可監(jiān)測腦電波的智能燈
      很多英國人不會拼常用詞
      霞浦县| 赣州市| 济源市| 仁怀市| 津南区| 湖州市| 通榆县| 曲水县| 甘孜| 花莲县| 张家港市| 津市市| 曲靖市| 台北县| 霍山县| 保靖县| 赞皇县| 佳木斯市| 寻乌县| 利辛县| 宜君县| 玉门市| 太原市| 山阴县| 锦州市| 瑞安市| 河北省| 广元市| 锡林浩特市| 天台县| 台江县| 仁化县| 怀安县| 湖州市| 丁青县| 潢川县| 长宁县| 保定市| 长春市| 宁蒗| 丹寨县|