国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

概念格在軟件工程中的應(yīng)用研究

2019-07-16 03:14降惠
電腦知識與技術(shù) 2019年15期
關(guān)鍵詞:軟件設(shè)計軟件開發(fā)軟件工程

降惠

摘要:概念格作為一個知識表示、分析與處理的工具,已廣泛應(yīng)用于軟件工程、信息檢索、人工智能等。為了提高軟件的質(zhì)量和開發(fā)效率,概念格可以應(yīng)用于軟件理解、軟件開發(fā)與軟件測試中,可以分別在軟件理解的系統(tǒng)配置結(jié)構(gòu)中、測試用例中、模式識別設(shè)計中,軟件開發(fā)的需求分析、軟件設(shè)計與web中,軟件測試的測試結(jié)果分析中應(yīng)用概念格技術(shù)來。最后,文章提出概念格在軟件工程中的研究趨勢為面向超大規(guī)模、高復(fù)雜度的軟件、優(yōu)化重用及響應(yīng)速度的提高等方面。

關(guān)鍵詞:概念格;軟件開發(fā);軟件設(shè)計;軟件測試;軟件工程

中圖分類號: TP399 ? ? ? ?文獻標(biāo)識碼:A

文章編號:1009-3044(2019)15-0080-03

Abstract: Concept lattice, as a tool for knowledge representation, analysis and processing, has been widely used in software engineering, information retrieval, artificial intelligence and so on. To the aim of improving the quality and the efficiency of software, concept lattice can be applied to software understanding, software development and software testing in software engineering. It can be applied to configuration structure of the system, test cases, pattern recognition designing. It is also can be used to demand analysis, software designing and web designing. Meanwhile, during the analysis of test result, concept lattice can also provide more testing data. Finally, the paper proposes that the research trend of concept lattice in software engineering is oriented towards software with very large scale and high complexity, optimizing reuse and the improving of response speed.

Key words: concept lattice; software development; software design; software testing; software engineering

1 背景

隨著互聯(lián)網(wǎng)時代的到來,基于人工智能技術(shù)的軟件在人類社會生產(chǎn)生活中的作用愈發(fā)明顯。人們依托互聯(lián)網(wǎng)軟件逐漸改變了傳統(tǒng)的衣、食、住、行習(xí)慣,提高了效率,便利了生活。因而人們對軟件的需求越來越多,要求越來越高,導(dǎo)致軟件開發(fā)設(shè)計的難度也越來越高,軟件的規(guī)模也越來越大,對現(xiàn)有軟件后期維護過程中的人、財、物等投入也日益增高。當(dāng)前的軟件工程研發(fā)項目已變得非常復(fù)雜和龐大,設(shè)計開發(fā)常常需要龐大的數(shù)據(jù)庫,高速的傳輸網(wǎng)絡(luò)、合理的技術(shù)和工具、高效合作的團隊等。如何研發(fā)更加科學(xué)高效程序開發(fā)技術(shù)、數(shù)據(jù)分析方法等已成為當(dāng)前計算機領(lǐng)域一項重要研究課題。

2 概念格

2.1 形式背景和形式概念

形式概念理論是1982年由德國達姆科技大學(xué)的Wille教授首次提出的。在形式概念理論中,形式背景由數(shù)據(jù)集中的所有對象、對象的屬性及對象與屬性之間的關(guān)系構(gòu)成。形式概念理論中,可以用一個由對象集子集和屬性集子集構(gòu)成的結(jié)點來表示一個形式概念,對象集的子集稱為形式概念的外延,屬性集的子集稱為形式概念的內(nèi)涵。

2.2 概念格

一般概念格是由形式背景中所有形式概念及其之間的偏序關(guān)系構(gòu)成,記作,形式概念間的偏序關(guān)系可以表示為

3 軟件工程

軟件工程是一門研究如何用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學(xué)科。它包括標(biāo)準(zhǔn)、數(shù)據(jù)庫、程序設(shè)計語言、軟件開發(fā)工具、設(shè)計模式、系統(tǒng)平臺等內(nèi)容[1]。一直以來,國內(nèi)外學(xué)術(shù)界對軟件工程缺乏一種統(tǒng)一規(guī)范的定義,很多計算機組織機構(gòu)、專家學(xué)者都對軟件工程做出了自己認(rèn)可的定義,但目前公認(rèn)的定義是:軟件工程是人們利用工程的原理、概念、技術(shù)、手段開發(fā)和維護軟件,把經(jīng)過實踐論證的好的管理技術(shù)和目前最優(yōu)的技術(shù)手段結(jié)合,最經(jīng)濟地設(shè)計開發(fā)高水平的軟件,并低成本、高穩(wěn)定性地進行后期維護的系統(tǒng)理論方法[2]。

4 概念格在軟件工程中的應(yīng)用

概念格理論和技術(shù)經(jīng)過近四十年的發(fā)展,已經(jīng)具備相對完備的理論基礎(chǔ)和技術(shù)范疇,概念格通常根據(jù)數(shù)據(jù)對象和共同屬性之間的二元關(guān)系建立一種較好的概念層次結(jié)構(gòu),目前概念格是一種科學(xué)高效層次化對象分析方法,可以迅速地識別提取具有共同屬性一組對象的組合。由于具有形式化表達能力,運用在軟件工程領(lǐng)域,具有非常強的理論優(yōu)勢和技術(shù)強項;目前,在軟件工程開發(fā)項目中,經(jīng)常遇到形式屬性與形式對象之間二元實體關(guān)系問題,概念格技術(shù)能夠科學(xué)高效地對產(chǎn)生的文檔和程序代碼進行分析,并構(gòu)建圖形化的概念格,提高軟件文檔、代碼、編碼、文本的抽象層次,確保能進行經(jīng)濟高效軟件維護,幫助程序開發(fā)人員和軟件測試人員更好的理解和管理軟件。目前,概念格已被廣泛運用于軟件理解、軟件定義、軟件開發(fā)、軟件維護等環(huán)節(jié)。

4.1 在軟件理解的應(yīng)用研究

軟件理解的主要任務(wù)是建立實現(xiàn)層到概念層的映射關(guān)系,建立低層次和高層次之間的映射集[3]。概念格在軟件理解中的應(yīng)用體現(xiàn)在配置結(jié)構(gòu)發(fā)現(xiàn),測試用例、設(shè)計模式識別、面向方面發(fā)現(xiàn)等環(huán)節(jié)。概念格可以把代碼屬性特征集合成形式背景,進而基于形成的形式背景識別提取出全局和部分之間的核心概念關(guān)系,動態(tài)分析與靜態(tài)分析相結(jié)合,分析出特定特征數(shù)據(jù)集之間的關(guān)聯(lián),這就使得軟件理解不再會對程序人員個人研發(fā)能力過高的依賴和約束,客觀因素也愈發(fā)重要,形式化屬性不斷增強,大大提高了軟件理解的效率和準(zhǔn)確度。

4.1.1 系統(tǒng)配置結(jié)構(gòu)中

Snelting在分析Unix C源代碼系統(tǒng)的配置結(jié)構(gòu)優(yōu)化和評測問題時,設(shè)計出了基于概念格技術(shù)分析的NORA/RECS工具[4],實現(xiàn)了程序源代碼配置結(jié)構(gòu)之間高內(nèi)聚和低耦合的優(yōu)化和評測。在系統(tǒng)配置結(jié)構(gòu)中,以代碼為對象,以系統(tǒng)配置表達式為屬性,在系統(tǒng)配置工具中構(gòu)建了概念格,進而可以發(fā)現(xiàn)配置之間依賴關(guān)系,表現(xiàn)出配置之間的獨立、互斥、沖突、共享等關(guān)系。

4.1.2 測試用例中

形式屬性可作為測試途徑,形式對象可作為程序過程,對象可以表達程序?qū)嶓w和程序測試之間的關(guān)聯(lián)關(guān)系、概念格的偏序性可以描述過程先后的持續(xù)關(guān)系。通常采用動態(tài)分析軟件表現(xiàn)了軟件用例和結(jié)構(gòu)之間的聯(lián)系和關(guān)系,該技術(shù)將計算單元作形式屬性,案例作形式對象,執(zhí)行特征和感興趣函數(shù),這種技術(shù)主要考慮定位軟件中的計算單元。

4.1.3 模式識別設(shè)計中

在面向?qū)ο蟪绦蜃R別設(shè)計模式中也經(jīng)常用到概念格。一種是利用概念格技術(shù)分析發(fā)現(xiàn)類的設(shè)計模式, 另一種是以形式背景的對象組為形式對象,以形式對象的關(guān)系為屬性構(gòu)造概念格,并對概念格進行屬性調(diào)整和約簡,最終產(chǎn)生了新的概念格。

4.2 在軟件開發(fā)中的應(yīng)用

隨著軟件需求的不斷提升,現(xiàn)代軟件開發(fā)也越來越復(fù)雜,軟件開發(fā)過程中使用更高效、科學(xué)、合理的分析技術(shù)成為當(dāng)務(wù)之急,概念格作為一種新興的軟件分析方法,已廣泛運用于軟件開發(fā)過程中,如需求分析、軟件設(shè)計等。

4.2.1 需求分析中

需求分析是指通過分析研究相關(guān)軟件的各自應(yīng)用環(huán)境,發(fā)現(xiàn)軟件相關(guān)應(yīng)用信息,即軟件針對各類需求進行應(yīng)用分析[5]。概念格分析方法特有的語境、共同屬性及概念集在需求分析過程中作用顯著。軟件工程的各個傳統(tǒng)模式對應(yīng)存在相應(yīng)的工作集,概念格通過分析對比工作集和共同屬性對應(yīng)關(guān)系,可得到特定的項目特征屬性集合,進而確保相應(yīng)軟件的需求分析更科學(xué)合理.

4.2.2 軟件設(shè)計中

軟件的設(shè)計是依據(jù)軟件需求分析進行,借助合理化的分析方法和工具進行分析設(shè)計,得到科學(xué)設(shè)計方法的過程,軟件設(shè)計是一種軟件的數(shù)據(jù)結(jié)構(gòu)改革。概念格技術(shù)具有表現(xiàn)概念和屬性之間的相關(guān)性的特點,通過分析所有的項目特征,形成形式背景,即相關(guān)的概念集,構(gòu)建出概念格。概念格技術(shù)在軟件設(shè)計中主要作用是構(gòu)建軟件系統(tǒng)的概念格,因此也形成了很多相對完備穩(wěn)定的概念格規(guī)則算法,人們利用這些算法可以快速發(fā)現(xiàn)所有數(shù)據(jù)集合之間的層次關(guān)系,進而有效提升軟件設(shè)計的效率和質(zhì)量[6]。

4.2.3 Web中

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,概念格已被廣泛運用于語義Web檢索、Web服務(wù)管理等方面。概念格不僅適用于特定語義Web領(lǐng)域檢索,還可以在不限定領(lǐng)域進行檢索,甚至可以通過概念格的層次結(jié)構(gòu)特點,進一步演化檢索對象的層次結(jié)構(gòu),優(yōu)化改進檢索結(jié)果;科研工作者還基于概念格理論,設(shè)計出基于語義Web服務(wù)相似度的功能匹配算法,利用這種匹配算法,可以實現(xiàn)一個原型系統(tǒng),為語義Web服務(wù)查找匹配提供了合理解決方案。此外,概念格還被運用到Web服務(wù)管理中,通過建立描述Web服務(wù)間相互關(guān)聯(lián)的概念格,分析如何對Web服務(wù)進行科學(xué)管理,并進行概念格增量維護。

4.3 在軟件測試中的應(yīng)用

軟件測試是為了提前發(fā)現(xiàn)軟件潛在錯誤,而專門執(zhí)行程序代碼的過程。主要目的是努力在軟件正式生產(chǎn)型運行之前,盡最大可能地發(fā)現(xiàn)并改正潛在的錯誤和漏洞,確保軟件的可靠性和穩(wěn)定性。概念格在軟件測試中的運用常見于通過概念格工具,根據(jù)正確直觀的形式背景對多個軟件的測試結(jié)果構(gòu)建概念格,最終提供軟件質(zhì)量評價的科學(xué)方法[7]。人們可以通過對概念格產(chǎn)生的大量測試結(jié)果進行分析,為以后同類軟件的設(shè)計開發(fā)提供經(jīng)驗和參考。

軟件通常分為代碼和文檔,軟件測試就是對現(xiàn)有的軟件代碼和文檔的準(zhǔn)確性和科學(xué)性進行測試。一般要經(jīng)過文檔審核,代碼審核、靜態(tài)分析、單元檢測、部件測試、配置項檢測和系統(tǒng)檢測等環(huán)節(jié)。程序人員通常通過千行缺陷率來評價某軟件的質(zhì)量高低。人們通常會預(yù)先確定聚準(zhǔn)缺陷率。然后把所有需要評價的軟件列入待選對象集,設(shè)置共同屬性為個測試階段千行代碼缺陷率,若軟件缺陷率大于基準(zhǔn)缺陷率,則該軟件具備共同屬性,若小于基準(zhǔn)缺陷率,則該軟件不具備該屬性.

人們可以根據(jù)該屬性構(gòu)建形式背景,進而生成對應(yīng)的Hasse圖,Hasse圖越往上層表明軟件的質(zhì)量越高,Hasse圖越往底層說明該軟件在測試過程中存在的問題越多,根據(jù)Hasse圖再進行知識發(fā)現(xiàn)和概念提取,最終構(gòu)建出概念格。我們會發(fā)現(xiàn),同一概念集中的對象(軟件)缺陷率是相互接近的。在軟件測試環(huán)節(jié)中,當(dāng)人們特別關(guān)注某一階段的缺陷率時,可以直接根據(jù)概念格中實體和屬性的關(guān)系發(fā)現(xiàn)和提取對應(yīng)的某一概念,概念格的這種技術(shù)優(yōu)勢非常適合于當(dāng)前大規(guī)模的軟件質(zhì)量對比和評價,可以有效降低成本,提高效益。

5 概念格在軟件工程中的研究趨勢

5.1 超大規(guī)模、高復(fù)雜度軟件應(yīng)用

概念格應(yīng)發(fā)揮好計算機和代數(shù)理論優(yōu)勢,更好地運用于超大規(guī)模、高復(fù)雜度軟件。當(dāng)前概念格在軟件理解領(lǐng)域發(fā)揮了一定作用,但是開發(fā)的軟件規(guī)模還較小,復(fù)雜度相對較低,并且人們對概念格運用仍局限在淺層次、簡單化階段,并沒有真正發(fā)揮出概念格深層次計算機和代數(shù)理論優(yōu)勢。

5.2 軟件設(shè)計研發(fā)、維護、優(yōu)化重用

充分發(fā)揮概念格在類層次再造、組建重構(gòu)、代碼特征定位、模塊結(jié)構(gòu)調(diào)整、影響分析等方面的技術(shù)優(yōu)勢,努力提高軟件設(shè)計研發(fā)、運行維護、優(yōu)化重用等方面的水平[8]。

5.3 數(shù)據(jù)分析和響應(yīng)速度

提高軟件系統(tǒng)的數(shù)據(jù)分析速度和響應(yīng)速度。目前,概念格常常用于分析處理大規(guī)模、復(fù)雜度很好的數(shù)據(jù)庫,而現(xiàn)有的概念格構(gòu)造算法在分析處理“海量”復(fù)雜數(shù)據(jù)時,效率還不高,充分發(fā)揮概念格技術(shù)優(yōu)勢。設(shè)計開發(fā)更科學(xué)高效概念格構(gòu)造算法意義重大。

6 結(jié)束語

概念格是一種基于某一概念的所有對象、屬性及其二元關(guān)系構(gòu)成的一種概念層次結(jié)構(gòu),是一種有效的知識表示、分析與處理的工具。在軟件開發(fā)、設(shè)計與測試中,使用概念格可以更好表達了軟件和概念之間的關(guān)系,有效提升軟件設(shè)計開發(fā)的效率和質(zhì)量。隨著互聯(lián)網(wǎng)發(fā)展,軟件工程開發(fā)必然需要使用新理論、新技術(shù)和新方法。如何設(shè)計更科學(xué)高效的概念格構(gòu)造算法,更好地適應(yīng)軟件技術(shù)發(fā)展,將是一個重要而有價值的課題。

參考文獻:

[1] 蔣平, 任勝兵, 林娟. 形式概念分析在軟件工程中的運用[J]. 計算機技術(shù)與發(fā)展, 2008(4): 127.

[2] 張海藩. 軟件工程[M]. 北京: 人民郵電出版社, 2005: 6-7.

[3] 李晟. 形式概念分析在軟件理解中的研究綜述[J]. 研究與開發(fā), 2012(5): 14.

[4] Snelting G. Concept Lattices in Software Analysis[M]//Formal

Concept Analysis. Berlin: SpringER, 2005.

[5] 烏弘毅, 黃映輝. 模糊概念格構(gòu)建的Bordat方法[J]. 計算機技術(shù)與發(fā)展, 2010(10): 15-21.

[6] 何丹丹. 概念格在軟件工程中的應(yīng)用[J]. 兩化融合, 2018(7): 186.

[7] 劉樹鵬, 李冠宇. 基于形式概念分析的本體合并方法[J]. 計算機工程與設(shè)計, 2011(4): 9-12.

[8] 畢強, 騰廣青. 國外形式概念分析與概念格理論應(yīng)用研究的前沿進展及熱點分析[J]. 現(xiàn)代圖書情報技術(shù), 2010(11): 21.

【通聯(lián)編輯:謝媛媛】

猜你喜歡
軟件設(shè)計軟件開發(fā)軟件工程
關(guān)于如何創(chuàng)新和完善計算機軟件工程管理的探討
旺苍县| 新竹县| 兰考县| 湘潭县| 金湖县| 姜堰市| 黄平县| 万荣县| 荥经县| 布尔津县| 黄冈市| 晋中市| 黄平县| 平利县| 泗洪县| 临桂县| 九寨沟县| 彩票| 绥中县| 全椒县| 东平县| 遵义市| 桂林市| 当涂县| 射阳县| 贡嘎县| 上饶市| 观塘区| 丽江市| 靖江市| 阳新县| 诸暨市| 个旧市| 舒城县| 仁布县| 介休市| 临清市| 南郑县| 桦川县| 贡山| 汪清县|