软件智能是对软件资产内部结构状态的了解,是透过专用软件来分析数据库结构、软件框架及源代码后的产物,目的是了解并管理复杂的软件系统。软件智能和商业智能(BI)类似,都是用数据挖掘及探究软件内部架构的软件工具及相关技术所产生。分析结果可以用在商业上,提供给和软件有关的人士,以便进行决策、讨论软件的健康情形、量度软件开发组织的效率,并且预防大型的软件灾难。
软件元件及主题既有复杂性,范围又很广,软件智能和以下的软件层面有关:
软件智能的相关层面也就使得软件智能有以下的这些组成内容:
若希望软件智能系统顺利的在企业内导入,就需要有使用者相关的考量。最终的目的是软件智能系统可以被使用者接受,在日常作业中应用,为组织加值。若系统无法完成使用者的任务,依照M. Storey在2003年所述的,使用者就不会使用此一系统了。
在程式码以及系统呈现的层面上,软件智能系统需要可以提供不同程度的抽象化:为了了解并且分析软件系统,在设计、解释、文件化上都需要抽象的观点,也需要另一个详细的观点。
在管理的层面上,客户对软件智能的接受度和系统的内在功能有关,也和系统的输出有关。包括了以下的需求:
软件智能已应用在许多和软件环境有关的企业中,可能是针对专业软件、个人用软件或是嵌入式软件。依照元件的用途以及企业应用的原因,软件智能可能和以下事务有关:
。软件智能可以量测软件开发的生产力,和企业目标之间的差距,相关资料可以给企业以及IT部门的主管。评估以及基准测试可以帮助企业以及IT部门主管针对软件进行正式、以事实为基础的决策。
软件智能已逐渐的用在上述的应用中。以下是行销层面需要此一技术的原因: