TWI590095B - 軟體功能驗證系統及其驗證方法 - Google Patents
軟體功能驗證系統及其驗證方法 Download PDFInfo
- Publication number
- TWI590095B TWI590095B TW105115623A TW105115623A TWI590095B TW I590095 B TWI590095 B TW I590095B TW 105115623 A TW105115623 A TW 105115623A TW 105115623 A TW105115623 A TW 105115623A TW I590095 B TWI590095 B TW I590095B
- Authority
- TW
- Taiwan
- Prior art keywords
- party
- decision
- file
- function verification
- tree structure
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
- G06F16/337—Profile generation, learning or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本發明是有關於一種將功能性文件(如,軟體文件、電路布局文件、光罩布局文件…等)以機器學習來進行功能驗證與風險判斷的技術,也是有關於一種軟體功能驗證系統及其驗證方法。
在全球化及資訊網路化的時代中,將公司的特定需求(如,特定的軟體功能、經設計的功能)或電路設計(如,電子電路布局)外包或委託給外部廠商來實現或實作,是目前常有的商業手段。然而,公司如何驗收軟體是否為其所需,或是如何評估此軟體的實際功能與需求功能之間的差異及風險程度,便是所需要解決的問題之一。從另一角度來說,實作方(如,外部廠商)希望得知自己所實作的產品是否符合設計方(如,客戶)需求,並希望能夠有公平的機制來評比自身產品。為此,許多公司或機構便希望能夠以制式化的標準來評判每個軟體的研發以及功能驗證。目前所知有能力成熟度模型(Capability Maturity Model;CMM)/能力成熟度模型整合(Capability Maturity Model Integration;CMMI)可以做為分析軟體廠商開發能力,以及評選合格軟體承包商的準則。然而,這些準則並非可實際應用的驗證軟件或自動化電腦設施,而是需要以人力(如,軟體工程師)藉由逐步地學習才能獲得認證的軟體撰寫技巧與目標。
因此,目前仍然僅能利用人工方式分析委外的功能性文件(如,軟體文件、電路布局文件、光罩布局文件…等)是否符合公司的需求,或是其編碼是否符合公司的設計。然而,如此作法將需要大量人力介入處理,因而費時費力。另一方面,由人力去驗證功能性文件的相應功能時,將會因為該位驗證者的資歷、經驗以及能力來對此軟體的評價有所不同。例如,對於軟體的可擴充性跟修改難易度的判斷上,不同驗證者的想法可能會有相當大的差異。另一方面,有許多軟體的功能雖然相同或相似,但是在軟體的編碼撰寫所採用的邏輯概念卻完全不同。因此,許多廠商皆希望能夠將軟體功能的分析及驗證交由電腦設備來處理,藉以透過統一性的驗證成效以及相應數據來作為較具備公信力的依據。
本發明提供一種軟體功能驗證系統及軟體功能驗證方法,可藉由電腦系統來自動化進行功能性文件的功能分析、評比軟體設計與需求之間、或是設計方與編碼方之間的功能落差的風險差異以及採集相關數據,避免以人力來進行軟體功能驗證,節省時間以及人力。
本發明的軟體功能驗證系統包括第一資料庫、第二資料庫、文件獲取設備以及功能驗證設備。第一資料庫包括多個第一方資訊,且第二資料庫包括多個第二方資訊。文件獲取設備用以獲取第一方文件以及第二方文件。功能驗證設備耦接所述第一資料庫以及所述第二資料庫。功能驗證設備藉由機器學習技術、第一方資訊以及第二方資訊以分析所述第一方文件而產生多個第一方技術點,並轉換這些第一方技術點而產生第一方決策表單。功能驗證設備分析所述第二方文件以產生多個第二方技術點,轉換這些第二方技術點以產生第二方決策表單。功能驗證設備分別將此第一方決策表單以及此第二方決策表單轉換為第一方樹狀結構以及第二方樹狀結構,比較此第一方樹狀結構以及此第二方樹狀結構以判斷所述第一方文件與所述第二方文件之間功能的差異程度。
本發明的軟體功能驗證方法適用於電腦系統。所述軟體功能驗證方法包括下列步驟。獲取第一方文件以及第二方文件。藉由機器學習技術、第一資料庫中的多個第一方資訊以及第二資料庫中的多個第二方資訊以分析所述第一方文件而產生多個第一方技術點,並轉換這些第一方技術點而產生第一方決策表單。藉由所述機器學習技術、第一方資訊以及第二方資訊以分析所述第二方文件而產生多個第二方技術點,轉換這些第二方技術點以產生第二方決策表單。分別將此第一方決策表單以及此第二方決策表單轉換為第一方樹狀結構以及第二方樹狀結構。以及,比較第一方樹狀結構以及第二方樹狀結構以判斷此第一方文件與此第二方文件之間功能的差異程度。
基於上述,本發明實施例所述的軟體功能驗證系統及軟體功能驗證方法可藉由考慮功能性文件的上下文語意特徵來從中提取技術點,並藉由這些技術點來進行設計回顧(design review)或編碼回顧(code review),藉以比對第一方文件以及第二方文件中的軟體功能差異,並評估這些軟體功能差異的風險等級。藉此,便可藉由電腦系統來自動化進行軟體功能的分析、評比軟體設計與需求之間的風險差異以及採集相關數據,避免以人力來進行軟體功能驗證,節省時間以及人力。並且,機器學習技術可從這些功能性文件(例如,軟體文件)的海量資料中挖掘出所需資訊來自主學習,藉以完善以電腦自動化來進行軟體功能驗證以及以技術點來評斷功能差異程度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是依照本發明實施例所述的軟體功能驗證系統100的方塊圖。軟體功能驗證系統100主要包括電腦系統110、第一資料庫(或稱為,需求方資料庫)120以及第二資料庫(或稱為,設計方資料庫)130。電腦系統110則主要包括文件獲取設備140以及功能驗證設備150。電腦系統110可藉由本發明實施例所述的機器學習技術來考慮功能性文件的上下文語意特徵來從中提取技術點,並將這些技術點整合為語義決策表單,並比較需求方文件的語義決策表單與設計或實作方文件的語義決策表單之間的差異以進行設計回顧或編碼回顧,藉以比對需求方文件以及設計方文件中的軟體功能差異,並評估這些軟體功能差異的風險等級。藉此,本發明實施例透過藉由機器學習技術來對需求方與設計方之間、實作方與設計方之間的文件進行功能驗證。此外,「需求方」、「設計方」或「實作方」僅是描述有雙方的文件需要進行功能驗證,然則本發明實施例並沒有限制雙方為誰,因此亦可將雙方稱為是「第一方」及「第二方」。也就是說,只要本發明實施例能夠從文件(如,軟體文件、電子電路佈局、光罩佈局…等文件)中抽取出技術點,且可與另一個文件的技術點進行比較,皆為本發明實施例所述的實現範圍。於本實施例中,需求方資料庫也可稱為是第一方資料庫,設計方資料庫也可稱為是第二方資料庫。
詳細來說,文件獲取設備140可以是實體的網路協定或通訊協定介面卡。功能驗證設備150也可以自行具備通訊介面,藉以透過網路來與其他設備(如,第一資料庫120、第二資料庫130,甚至是文件獲取設備140)進行通訊以及資料傳遞。功能驗證設備150可包括處理器152以及非揮發性儲存媒體154。處理器152可藉由非揮發性儲存媒體154以及相應硬體來實現本發明實施例所述的軟體功能驗證方法。
第一資料庫120可以是由第一方(例如,「需求方」、「委外的公司」)所提供的相關資訊(可稱為,第一方資訊),藉以作為機器學習之用。另一方面,第二資料庫130則包括第二方(如,「設計方」)的多個功能性資訊。換句話說,第二資料庫130可以是軟體的語言資料庫、電子電路的詞語資料庫…等,端視軟體功能驗證系統100對於此功能性文件的特定領域而可有所不同。所謂的「特定領域」可以是功能性文件的用途領域,例如不同的軟體語言(如,C語言、Verilog、VC++…等)領域、電路布局領域、光罩設計領域…等。
在此說明本發明實施例所使用的機器學習技術中所用的相關術語。在機器學習技術中,經常採用規則集(rule set)來做為實現方式。規則集是一種以自然語言來描述結構形式規則的集合。所謂的「規則集」有兩種模式。一種模式為有序模式,此機器學習系統會從規則集中的第一個規則開始對資料進行檢查,並在檢查滿足後才會繼續檢查第二個規則,並以此類推。另一種模式則為無序模式,此機器學習系統會將規則集中的所有規則全部進行檢查,並根據這些規則組成的整合方案來檢查規則是否符合。本發明實施例所述之機器學習技術主要在用無序模式的規則集來實現語義決策表單(semantic decision table;SDT)。
所謂的「語義決策表單」是使用先進的概念工程(ontology engineering;OG)技術來強化傳統的決策表單。語義決策表單包括遠多於以往決策表單的決策規則集。這些規則集的決定可從真實世界中決策的問題中獲得,也就是可以藉由上下文資訊來透過語義來決定多個規則。用來擷取語義的程序可以抽為是知識收穫程序。在本實施例中,SDT可藉由發展基於概念之方法及應用(Developing Ontology-Grounded Methods And Applications;DOGMA)的框架(frame)來模組化。可藉由應用程序來將概念分離成非常簡單的語言結構,且此語言結構的層級可以適應性地調整。此處的「語言結構」可被稱為是Lexon。根據DOGMA框架,SDT包括具備二進位層級的事實類型(fact type)(事實類型可被稱為是SDT Lexon)以及。SDT承諾層級包括這些事實類型的限制以及理由。Lexon可以利用自然語言呈現的物件,以及這些物件之間的關係或規則來呈現。SDT承諾層級(commitment layer)在形式上可藉由使用Lexon的應用程序(或是,代理者(agent))來定義許多被選擇的規則以及限制(constraint)。基於需求,承諾層級可包括多個限制、規則以及理論上二進位事實(axiomatized binary fact)。承諾層級可藉由許多不同的建模工具來建立模組,例如對象腳色建模(object-role modeling)、概念圖形(conceptual gragh;CG)以及統一建模語言(Unified Modeling Language;UML)。本實施例主要以統一建模語言(UML)來做為實現方式。
圖2是依照本發明實施例所述的軟體功能驗證方法的流程圖。此軟體功能驗證方法可適用於圖1所述的軟體功能驗證系統100以及電腦系統110當中。請同時參考圖1及圖2,於步驟S210中,文件獲取設備140用來獲取第一方文件D1以及第二方文件D2。於本實施例中,第一方文件D1可以是公司的特定需求或電路設計的態樣文件,或是以自然語言等可藉由文件獲取設備140來得知其內容的文件。第二方文件D2則可以是外部廠商所完成的軟體文件、電路布局文件或是光罩布局文件。這些文件在經由特定軟體或機器讀取並執行後便會執行其功能,因此在此稱為是「第二方文件」。
於步驟S220中,功能驗證設備150中的處理器152則藉由機器學習技術、第一資料庫120中的多個第一方資訊以及第二資料庫中130的多個第二方資訊以分析第一方文件D1而產生多個第一方技術點,並轉換這些第一方技術點而產生第一方決策表單。並且,相似地,於步驟S230中,處理器152藉由機器學習技術、上述第一方資訊以及第二方資訊以分析第二方文件D2而產生多個第二方技術點,並轉換這些第二方技術點以產生第二方決策表單。本實施例的第一方決策表單以及第二方決策表單皆屬於語義決策表單。本實施例的步驟S220與步驟S230可以互換順序,也就是第一方決策表單以及第二方決策表單的行程順序不受限制。步驟S220以及步驟S230的詳細步驟流程將於圖3中更為詳細描述。
於步驟S240中,功能驗證設備150中的處理器152分別將步驟S220所產生的第一方決策表單以及步驟S230所產生的第二方決策表單分別轉換為第一方樹狀結構以及第二方樹狀結構。將上述這些語義決策表單轉換為樹狀結構的用意是,樹狀結構的資料結構比語義決策表單的資料結構來說較易於比對兩者的差異。於步驟S250中,處理器152比較此第一方樹狀結構以及此第二方樹狀結構,從而判斷第一方文件D1與第二方文件D2之間功能的差異程度。處理器152可透過樹枝結構比較演算法來逐一比對第一方樹狀結構以及此第二方樹狀結構中的各個節點以及樹葉點,藉以得知這兩個樹狀結構的差異為何,以獲得樹狀結構比較成果。另一方面,功能驗證設備150可依據上述的樹狀結構比較成果,並藉由權重功能分類法或梯度推進機器分類法(gradient boosting machine classifying)來計算第一方文件D1與第二方文件D2之間功能的差異程度。此種差異程度可藉由百分比來呈現、藉由多個層級(如,層級一至層級十)來呈現、也可藉由數字來呈現。本發明實施例並不限制差異程度以何種方式呈現,以讓使用者可藉由軟體功能驗證系統100來獲得較為客觀的功能差異數據為準則。
圖3是依照本發明實施例所述的軟體功能驗證方法中步驟S220及步驟S230的詳細流程圖。由於步驟S220以及步驟S230皆是功能驗證設備150藉由文件(如,第一方文件或第二方文件)來產生對應的語義決策表單(如,第一方決策表單或第二方決策表單),因此本實施例將步驟S220、S230的詳細步驟流程說明於圖3,並以第一方文件以及第一方決策表單來做為舉例。然,應用本實施例者也可將「第一方文件」換成「第二方文件」,藉以產生第二方決策表單。請同時參照圖1及圖3,於步驟S310中,功能驗證設備150以資料探勘(data mining)演算法而從第一方文件D1依據其上下文資訊而辨認第一方文件D1當中的第一方技術點。這些第一方技術點設備可被稱為是設計樣式(design patterns)。本實施例以半監督式機率形模式識別演算法(semi-supervised probabilistic pattern recognition algorithm)來作為上述資料探勘演算法,其可更為有效地獲得所需的第一方技術點,並避免錯誤傳播。
於步驟S320中,功能驗證設備150依據使用者設定或是由功能驗證設備150自行偵測得到的特定領域以將這些第一方技術點轉換為多個第一方元素。此處的「特定領域」可由使用者自行設定,藉以獲得較佳的效果,當然也可由功能驗證設備150自行藉由文件中的上下文資訊來自動判定。本實施例的「第一方元素」可以是統一建模語言(UML)元素。於步驟S330中,功能驗證設備150可藉由靜室設計(Cleanroom design)手段或其他項應手段來反向轉換這些第一方元素以形成至少一個第一方統一建模語言(UML)圖形。
於步驟S340中,功能驗證設備150可從上述至少一個第一方UML圖形中獲得多個訓練樣本,並依據這些訓練樣本以產生多個第一方決策表單。功能驗證設備150可從第一方決策表單或第二方決策表單所對應的UML圖形中獲得多個訓練樣本,並使用這些訓練樣本來訓練對應的第一方決策表單或第二方決策表單。這些訓練樣本可以經由取樣獲得、或是不經由取樣而以全部類型的樣本來做為訓練樣本。於部分實施例中,功能驗證設備150可在針對UML圖形的預先資料探勘中獲得前件表(antecedent list),並以這些前件表中的訓練樣本來訓練這些決策表單。在訓練過程中,功能驗證設備150可依據這些訓練樣本來訓練這些決策表單,並從這些決策表單中藉由有關於數學優化的演算法以選擇其中之一來作為第一方決策表單。本實施例可藉由本德爾斯分解(Benders decomposition)與模擬退火(Simulated Annealing)相結合的演算法以從這些決策表單中選擇其中之一以作為第一方決策表單,並於下述進行說明詳細步驟流程。
在大數據機器學習領域的火花拉姆達結構(spark lambda architecture)中,假定在批次視點(batch view)中的總損失可由方程式(1)來表示:
…. (1)
方程式(1)中的「a」為先行名單。「x
i」、「y
i」為訓練樣本。N
b為正整數。「Loss(a)」是一種突出形損失函數,例如是絞鍊損失(hinge loss)、物流損失或指數損失。
在即時視點(realtime view)中的總損失可由方程式(2)來表示,其中N
r為正整數:
…. (2)
因此,兩者合起來的總損失則可由方程式(3)來實現:
… (3)
本實施例便藉由上述方程式來找出最佳的SDT參數,藉以從多個SDT中選擇出具備最佳解的第一方SDT或是第二方SDT。
本發明實施例提出在數學優化領域中由本德爾斯分解與模擬退火相互結合的演算法,藉以從這些SDT中選擇較佳的SDT來使用。圖4為本德爾斯分解(Benders decomposition)與模擬退火(Simulated Annealing)相互結合的演算法的步驟流程圖。請同時參照圖1及圖4,圖4中的所有步驟可由圖1中的處理器152來實現。
在此先行設定相關參數。參數δ為上限與下限之間的公差間隙。P為具備目標函數(objective function)的原始優化問題(original optimization problem),此問題P可由下述方程式(4)呈現:
… (4)
P0為具備標函數的起始代理問題(initial proxy problem),其可由方程式(5)呈現:
… (5)
切割線θ可由方程式(6)呈現:
… (6)
參數a
N為前件表中的前件集a的其中一個單元。參數k的起始值為0,參數UB
k的起始值為無限大(∞)參數LB
k的起始值為0。甲骨文功能(oracle function)可計算
以及
,以獲得經計算後
以及
的數據。
於步驟S410中,處理器152判斷參數UB
k減去參數LB
k的數值是否小於公差間隙δ(UB
k-LB
k>δ),且參數k是否小於k的最大值kmax(k<kmax)。當步驟S410為是,則於步驟S420中,處理器152計算問題P
k,使用最大後驗機率估計以獲得次優解答a
k。於步驟S420中,處理器152使用模擬退火演算法來多次計算問題P
k,直到獲得較佳的解答a
k或是運算時間的預算用完。在使用模擬退火演算法的情況下,本發明實施例使用最大後驗機率估計來做為目標,藉以獲得較佳的解答。
於步驟S430中,處理器152將參數LB
k+1設定為
的數值。於步驟S440中,處理器152查詢(query)上述的甲骨文功能(oracle function)以獲得
以及
的數據。在步驟S450中,處理器152將參數UB
k+1設定為
的數值。於步驟S460中,處理器152藉由在點P
k上增加最優切割線θk(
),並透過最小損失估計以在方程式
上獲得另一點P
k。換句話說,步驟S460的本德爾斯分解演算法係藉由最小損失估計來獲得較佳解。於步驟S470中,處理器152將參數k加1,並回到步驟S410以重複上述步驟。藉此,當步驟S410為否時,處理器152便可於步驟S480中輸出用於問題P的最佳解答a
k來作為本發明實施例的最佳SDT。
特別說明的是,處理器152在判斷是否要回到步驟S410續行計算最佳解答時,除了在步驟S460中判斷本德爾斯分解演算法的條件是否符合以外,還在步驟S420中判斷模擬退火演算法的條件是否符合。因此,本實施例將會同時考慮到本德爾斯分解演算法以及模擬退火演算法的條件,用此種方式將可獲得高品質的次優解答,進而有助於提升演算法的精確度跟執行效率。
綜上所述,本發明實施例所述的風險評估系統及資料處理方法可藉由資料中的上下文資訊以及低複雜度的模型演算法來達到風險評估的效果,並可提升使用效率。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
100‧‧‧軟體功能驗證系統
110‧‧‧電腦系統
120‧‧‧第一資料庫
130‧‧‧第二資料庫
140‧‧‧文件獲取設備
150‧‧‧功能驗證設備
152‧‧‧處理器
154‧‧‧儲存媒介
S210~S250、S310~S340、S410~S480‧‧‧步驟
D1‧‧‧第一方文件
D2‧‧‧第二方文件
110‧‧‧電腦系統
120‧‧‧第一資料庫
130‧‧‧第二資料庫
140‧‧‧文件獲取設備
150‧‧‧功能驗證設備
152‧‧‧處理器
154‧‧‧儲存媒介
S210~S250、S310~S340、S410~S480‧‧‧步驟
D1‧‧‧第一方文件
D2‧‧‧第二方文件
圖1是依照本發明實施例所述的軟體功能驗證系統的方塊圖。 圖2是依照本發明實施例所述的軟體功能驗證方法的流程圖。 圖3是依照本發明實施例所述的軟體功能驗證方法中步驟S220及步驟S230的詳細流程圖。 圖4為本德爾斯分解與模擬退火相互結合的演算法的步驟流程圖。
S210~S250‧‧‧步驟
Claims (8)
- 一種軟體功能驗證系統,包括:一第一資料庫,包括多個第一方資訊;一第二資料庫,包括多個第二方資訊;一文件獲取設備,用以獲取一第一方文件以及一第二方文件;以及一功能驗證設備,耦接該第一資料庫以及該第二資料庫,藉由一機器學習技術、該些第一方資訊以及該些第二方資訊以透過該第一方文件分析出多個第一方技術點,並轉換該些第一方技術點而產生一第一方決策表單,透過該第二方文件分析出多個第二方技術點,轉換該些第二方技術點以產生一第二方決策表單,分別將該第一方決策表單以及該第二方決策表單轉換為一第一方樹狀結構以及一第二方樹狀結構,比較該第一方樹狀結構以及該第二方樹狀結構以判斷該第一方文件與該第二方文件之間功能的一差異程度,其中該功能驗證設備以一資料探勘演算法而從該第一方文件依據其上下文資訊而辨認該些第一方技術點,依據一特定領域以將該些第一方技術點轉換為多個第一方元素,反向轉換該些第一方元素以形成至少一第一方統一建模語言(UML)圖形,從該至少一第一方UML圖形中獲得多個訓練樣本並依據該些訓練樣本以產生該第一方決策表單。
- 如申請專利範圍第1項所述的軟體功能驗證系統,其中該資料探勘演算法為半監督式機率形模式識別演算法。
- 如申請專利範圍第1項所述的軟體功能驗證系統,其中該功能驗證設備藉由一靜室設計手段以反向轉換該些第一方元素而產生多個決策表單。
- 如申請專利範圍第3項所述的軟體功能驗證系統,其中該功能驗證設備依據該些訓練樣本來訓練該些決策表單,並從該些決策表單中選擇其中之一以作為該第一方決策表單。
- 如申請專利範圍第1項所述的軟體功能驗證系統,其中該功能驗證設備藉由一權重功能分類法或一梯度推進機器分類法來計算該第一方文件與該第二方文件之間功能的該差異程度。
- 一種軟體功能驗證方法,適用於一電腦系統,其中該軟體功能驗證方法包括:獲取一第一方文件以及一第二方文件;藉由一機器學習技術、一第一資料庫中的多個第一方資訊以及一第二資料庫中的多個第二方資訊以分析該第一方文件而產生多個第一方技術點,並轉換該些第一方技術點而產生一第一方決策表單;藉由該機器學習技術、該些第一方資訊以及該些第二方資訊以分析該第二方文件而產生多個第二方技術點,轉換該些第二方技術點以產生一第二方決策表單;分別將該第一方決策表單以及該第二方決策表單轉換為一第 一方樹狀結構以及一第二方樹狀結構;以及比較該第一方樹狀結構以及該第二方樹狀結構以判斷該第一方文件與該第二方文件之間功能的一差異程度,其中,透過該第一方文件分析出該些第一方技術點,並轉換該些第一方技術點而產生該第一方決策表單包括:依據一特定領域以將該些第一方技術點轉換為多個第一方元素;反向轉換該些第一方元素以形成至少一第一方統一建模語言(UML)圖形;以及從該至少一第一方UML圖形中獲得多個訓練樣本,並依據該些訓練樣本以產生該第一方決策表單。
- 如申請專利範圍第6項所述的軟體功能驗證方法,其中藉由一靜室設計手段以反向轉換該些第一方元素而產生多個決策表單。
- 如申請專利範圍第7項所述的軟體功能驗證方法,依據該些訓練樣本以產生該第一方決策表單包括:依據該些訓練樣本來訓練該些決策表單;以及藉由本德爾斯分解與模擬退火相結合的演算法以從該些決策表單中選擇其中之一以作為該第一方決策表單,其中該模擬退火藉由最大後驗機率估計來獲得較佳解,該本德爾斯分解藉由最小損失估計來獲得較佳解。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115623A TWI590095B (zh) | 2016-05-19 | 2016-05-19 | 軟體功能驗證系統及其驗證方法 |
CN201610376009.1A CN107402859B (zh) | 2016-05-19 | 2016-05-31 | 软件功能验证***及其验证方法 |
US15/239,787 US10467221B2 (en) | 2016-05-19 | 2016-08-17 | Software function verification system and software function verification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105115623A TWI590095B (zh) | 2016-05-19 | 2016-05-19 | 軟體功能驗證系統及其驗證方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI590095B true TWI590095B (zh) | 2017-07-01 |
TW201810105A TW201810105A (zh) | 2018-03-16 |
Family
ID=60048442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105115623A TWI590095B (zh) | 2016-05-19 | 2016-05-19 | 軟體功能驗證系統及其驗證方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10467221B2 (zh) |
CN (1) | CN107402859B (zh) |
TW (1) | TWI590095B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310224B2 (en) * | 2017-02-15 | 2022-04-19 | Adp, Inc. | Enhanced security authentication system |
JP7056132B2 (ja) * | 2017-12-18 | 2022-04-19 | 富士通株式会社 | 設計書評価プログラム、設計書評価方法および設計書評価装置 |
US11258817B2 (en) * | 2018-10-26 | 2022-02-22 | Tenable, Inc. | Rule-based assignment of criticality scores to assets and generation of a criticality rules table |
CN109542664B (zh) * | 2018-12-13 | 2024-07-16 | 平安科技(深圳)有限公司 | 基于人工智能的文件校验方法、装置及计算机设备 |
US11681873B2 (en) * | 2019-09-11 | 2023-06-20 | International Business Machines Corporation | Creating an executable process from a text description written in a natural language |
TWI759874B (zh) * | 2020-09-22 | 2022-04-01 | 明泰科技股份有限公司 | 分散式的軟體驗證系統 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2843214B1 (fr) * | 2002-07-30 | 2008-07-04 | Bull Sa | Procede de verification fonctionnelle d'un modele de circuit integre pour constituer une plate-forme de verification, equipement emulateur et plate-forme de verification. |
US9569737B2 (en) * | 2006-08-16 | 2017-02-14 | Aware Software, Inc. | Methods and tools for creating and evaluating system blueprints |
US20140188919A1 (en) * | 2007-01-26 | 2014-07-03 | Google Inc. | Duplicate document detection |
JP5324792B2 (ja) * | 2008-01-28 | 2013-10-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | システムの動作を検証するシステムおよび方法 |
US8677310B2 (en) * | 2008-06-30 | 2014-03-18 | Rockwell Automation Technologies, Inc. | Industry template abstracting and creation for use in industrial automation and information solutions |
JP5440394B2 (ja) * | 2010-05-31 | 2014-03-12 | ソニー株式会社 | 評価予測装置、評価予測方法、及びプログラム |
US8935654B2 (en) * | 2011-04-21 | 2015-01-13 | Accenture Global Services Limited | Analysis system for test artifact generation |
TWI484413B (zh) * | 2012-04-03 | 2015-05-11 | Mstar Semiconductor Inc | 基於功能性的程式比較方法 |
TW201512838A (zh) * | 2013-09-27 | 2015-04-01 | Chunghwa Telecom Co Ltd | 測試案例優先排序方法 |
US9536093B2 (en) * | 2014-10-02 | 2017-01-03 | Microsoft Technology Licensing, Llc | Automated verification of a software system |
US10303441B2 (en) * | 2015-04-28 | 2019-05-28 | Nadia Analía Huebra | Process and system for automatic generation of functional architecture documents and software design and analysis specification documents from natural language |
US20160321591A1 (en) * | 2015-04-30 | 2016-11-03 | International Business Machines Corporation | Outcomes-based application monitoring |
US10353754B2 (en) * | 2015-12-31 | 2019-07-16 | Entefy Inc. | Application program interface analyzer for a universal interaction platform |
-
2016
- 2016-05-19 TW TW105115623A patent/TWI590095B/zh active
- 2016-05-31 CN CN201610376009.1A patent/CN107402859B/zh active Active
- 2016-08-17 US US15/239,787 patent/US10467221B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10467221B2 (en) | 2019-11-05 |
CN107402859B (zh) | 2020-11-03 |
TW201810105A (zh) | 2018-03-16 |
US20170337240A1 (en) | 2017-11-23 |
CN107402859A (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI590095B (zh) | 軟體功能驗證系統及其驗證方法 | |
JP6954049B2 (ja) | 知識グラフを完成させるための方法および装置 | |
US9043285B2 (en) | Phrase-based data classification system | |
AU2019204444B2 (en) | System and method for enrichment of ocr-extracted data | |
CN110728328B (zh) | 分类模型的训练方法和装置 | |
EP3846034B1 (en) | Systems and methods for automated testing using artificial intelligence techniques | |
CN110909868A (zh) | 基于图神经网络模型的节点表示方法和装置 | |
CN111694957B (zh) | 基于图神经网络的问题单分类方法、设备及存储介质 | |
CN115114421A (zh) | 一种问答模型训练方法 | |
Sun et al. | Parameter identification for Bernoulli serial production line model | |
WO2023029065A1 (zh) | 数据集质量评估方法、装置、计算机设备及存储介质 | |
CN110413307A (zh) | 代码功能的关联方法、装置及电子设备 | |
US11436514B2 (en) | Designing plans using requirements knowledge graph | |
US20220067101A1 (en) | Concept prediction to create new intents and assign examples automatically in dialog systems | |
CN112437022A (zh) | 网络流量识别方法、设备及计算机存储介质 | |
US20230351153A1 (en) | Knowledge graph reasoning model, system, and reasoning method based on bayesian few-shot learning | |
CN116467466A (zh) | 基于知识图谱的编码推荐方法、装置、设备及介质 | |
CN116401372A (zh) | 知识图谱表示学习方法、装置、电子设备及可读存储介质 | |
CN116340883A (zh) | 配电网数据资源融合方法、装置、设备及存储介质 | |
CN113792189A (zh) | 群智软件开发贡献效率评估方法、装置、设备及介质 | |
CN112434471A (zh) | 提升模型泛化能力的方法、***、电子设备及存储介质 | |
CN117633518B (zh) | 一种产业链构建方法及*** | |
CN115270802B (zh) | 一种问题语句的处理方法、电子设备及存储介质 | |
CN117473510B (zh) | 一种基于图神经网络和漏洞补丁关系的自动化漏洞挖掘技术 | |
CN117764280A (zh) | 低碳调控信息空间构建方法、装置、电子设备和存储介质 |