軟體智能

軟體智能是對软件資產內部結構狀態的瞭解，是透過專用軟體來分析数据库結構、軟體框架及源代码後的產物，目的是瞭解並管理複雜的軟體系統。軟體智能和商业智能（BI）類似，都是用数据挖掘及探究軟體內部架構的軟體工具及相關技術所產生。分析結果可以用在商業上，提供給和軟體有關的人士，以便進行決策、討論軟體的健康情形、量度軟體開發組織的效率，並且預防大型的軟體災難。



相關層面
軟體元件及主題既有複雜性，範圍又很廣，軟體智能和以下的軟體層面有關：

 軟體組成是指建構軟體應用元件的過程。元件是從撰寫軟體程式碼而來，也包括整合程式碼以及外部元件：開源程式、第三方元件或是框架。其他的元件可能是由应用程序接口呼叫函式庫或是服務而來。
 软件架构是指系統各元件的結構及組織、彼此之間關係、以及元件的性質。
 軟件缺陷是指會造成安全性、穩定性、恢復性相關問題的錯誤，或是會產生非預期結果的錯誤。有關軟件缺陷，還沒有一個標準的定義，不過最多人接受的定義是來自非營利組織的定義，其中會用通用缺陷列表將軟體缺陷進行分類。
 軟體等級是評估軟體的屬性。以往的分類以及詞語是源自ISO/IEC 9126以及後續的ISO 25000:2005品質模型。
 軟體經濟學是指過去、現在及未來有關軟體開發需要資源的評估，目的是為了決策以及管理。

組成
軟體智能有以下的組成內容：

 程式碼分析器，可以識別程式語言產生的物件、開源軟體產生的外部物件、第三方物件、框架、應用程式介面（API）或是，作為其他軟體智能分析的資訊基礎。
 軟體產品或是應用程式內在架構的圖形視覺化，以及相關藍圖，其中包括相依性，從資料取得（自動化實時的資料擷取，或是終端用戶輸入）到資料的儲存、軟體中不同的層次、以及各元件之間的耦合。
 在元件和影響分析特徵之間瀏覽及切換的能力
 軟體缺陷列表，在架構或是程式撰寫上違反標準最佳實務的部份，防範不正常的資料調用，避免影響軟體的安全性及整合性。
 軟體結構及软件质量的評級或評分，對應標準可能是工業標準，像是OMG、（CISQ）或（SEI），會針對軟體可靠度、安全性、效率、可維護性、是否可以擴展到雲端或是其他系統等。
 量化及評估軟體經濟學（包括工作量、程式大小及技术负债）的度量。
 產業參考以及基準測試，可以在產業標準及各分析的輸出上比較。

使用者的層面
若希望軟體智能系統順利的在企業內導入，就需要有使用者相關的考量。最終的目的是軟體智能系統可以被使用者接受，在日常作業中應用，為組織加值。若系統無法完成使用者的任務，依照M. Storey在2003年所述的，使用者就不會使用此一系統了。

在程式碼以及系統呈現的層面上，軟體智能系統需要可以提供不同程度的抽象化：為了瞭解並且分析軟體系統，在設計、解釋、文件化上都需要抽象的觀點，也需要另一個詳細的觀點。

在管理的層面上，客戶對軟體智能的接受度和系統的內在功能有關，也和系統的輸出有關。包括了以下的需求：
全面：缺少資訊有可能讓管理者作出錯誤或是不適當的決策，這也是影響系統接受度的因素之一。
準確：準確性和資料的搜集方式有關，以確保公正以及沒有爭議的意見以及判斷。
精確：精確可以透過針對同一來源（或不同來源）多次量測來判斷。
可擴展性：在軟體產業中，缺乏可擴展性往往是導致失敗的關鍵因素之一。
 可信：結果必須讓人可以信賴。
 可以布署，並且可用。

應用
軟體智能已應用在許多和軟體環境有關的企業中，可能是針對專業軟體、個人用軟體或是嵌入式軟體。
依照元件的用途以及企業應用的原因，軟體智能可能和以下事務有關：
軟體更改以及現代化：可以針對所有內部元件、外部整合的程式、對內部或外在元件的呼叫產生一致性的文件，以及軟體的藍圖。
軟體復原性及安全性：針對產業標準進行度量，並且診斷IT環境下的結構性缺陷。並且確認有關安全性、特殊法及技術要求的相容性。
決策及治理：提供有關軟體的分析，可能和組織本身，或是和軟體開發有關的人士
。軟體智能可以量測軟體開發的生產力，和企業目標之間的差距，相關資料可以給企業以及IT部門的主管。評估以及基準測試可以幫助企業以及IT部門主管針對軟體進行正式、以事實為基礎的決策。

行銷觀點
軟體智能已逐漸的用在上述的應用中。以下是行銷層面需要此一技術的原因： 
 應用軟體組合分析（Application Portfolio Analysis、APA）：目的在提昇企業的效能
 軟體評估，以產生軟體的KPI，提昇品質及生產力
 以及其恢復力（resiliency）的評估及確認
 軟體演進或是舊軟體的現代化，需要軟體系統的藍圖，或是工具提昇、機能修改之類的議題

參考資料

软件
软件工程
数据管理
源代码