热门问题
时间线
聊天
视角

软件智能

来自维基百科,自由的百科全书

Remove ads

软件智能是对软件资产内部结构状态的了解,是透过专用软件来分析数据库结构、软件框架源代码后的产物,目的是了解并管理复杂的软件系统[1]。软件智能和商业智能(BI)类似,都是用数据挖掘及探究软件内部架构的软件工具及相关技术所产生。分析结果可以用在商业上,提供给和软件有关的人士,以便进行决策、讨论软件的健康情形、量度软件开发组织的效率,并且预防大型的软件灾难[2]

相关层面

软件元件及主题既有复杂性,范围又很广,软件智能和以下的软件层面有关:

  • 软件组成是指建构软件应用元件的过程[3]。元件是从撰写软件程式码而来,也包括整合程式码以及外部元件:开源程式、第三方元件或是框架。其他的元件可能是由应用程序接口呼叫函式库或是服务而来。
  • 软件架构是指系统各元件的结构及组织、彼此之间关系、以及元件的性质。
  • 软件缺陷是指会造成安全性、稳定性、恢复性相关问题的错误,或是会产生非预期结果的错误。有关软件缺陷,还没有一个标准的定义,不过最多人接受的定义是来自非营利组织MITRE英语Mitre Corporation的定义,其中会用通用缺陷列表将软件缺陷进行分类[4]
  • 软件等级是评估软件的属性。以往的分类以及词语是源自ISO/IEC 9126以及后续的ISO 25000:2005[5]品质模型。
  • 软件经济学是指过去、现在及未来有关软件开发需要资源的评估,目的是为了决策以及管理[6]
Remove ads

组成

软件智能有以下的组成内容:

  • 程式码分析器,可以识别编程语言产生的物件、开源软件产生的外部物件、第三方物件、框架应用程序界面(API)或是服务英语Service (systems architecture),作为其他软件智能分析的资讯基础。
  • 软件产品或是应用程序内在架构的图形视觉化,以及相关蓝图[7],其中包括相依性,从资料取得(自动化实时的资料撷取,或是终端用户输入)到资料的储存、软件中不同的层次[8]、以及各元件之间的耦合
  • 在元件和影响分析特征之间浏览及切换的能力
  • 软件缺陷列表,在架构或是程式撰写上违反标准最佳实务的部分[9],防范不正常的资料调用,避免影响软件的安全性及整合性[10]
  • 软件结构及软件质量的评级或评分,对应标准可能是工业标准,像是OMGIT软件品质协会英语CISQ(CISQ)或软件工程学院英语Software Engineering Institute(SEI),会针对软件可靠度、安全性、效率、可维护性、是否可以扩展到云端或是其他系统等。
  • 量化及评估软件经济学(包括工作量、程式大小及技术负债)的度量[11]
  • 产业参考以及基准测试,可以在产业标准及各分析的输出上比较。
Remove ads

使用者的层面

若希望软件智能系统顺利的在企业内导入,就需要有使用者相关的考量。最终的目的是软件智能系统可以被使用者接受,在日常作业中应用,为组织加值。若系统无法完成使用者的任务,依照M. Storey在2003年所述的,使用者就不会使用此一系统了[12]

在程式码以及系统呈现的层面上,软件智能系统需要可以提供不同程度的抽象化:为了了解并且分析软件系统,在设计、解释、文件化上都需要抽象的观点,也需要另一个详细的观点[13]

在管理的层面上,客户对软件智能的接受度和系统的内在功能有关,也和系统的输出有关。包括了以下的需求:

  • 全面:缺少资讯有可能让管理者作出错误或是不适当的决策,这也是影响系统接受度的因素之一[14]
  • 准确:准确性和资料的搜集方式有关,以确保公正以及没有争议的意见以及判断[15]
  • 精确:精确可以透过针对同一来源(或不同来源)多次量测来判断[16]
  • 可扩展性:在软件产业中,缺乏可扩展性往往是导致失败的关键因素之一[17]
  • 可信:结果必须让人可以信赖。
  • 可以布署,并且可用。

应用

软件智能已应用在许多和软件环境有关的企业中,可能是针对专业软件、个人用软件或是嵌入式软件。 依照元件的用途以及企业应用的原因,软件智能可能和以下事务有关:

  • 软件更改以及现代化:可以针对所有内部元件、外部整合的程式、对内部或外在元件的呼叫产生一致性的文件,以及软件的蓝图[18]
  • 软件复原性及安全性:针对产业标准进行度量,并且诊断IT环境下的结构性缺陷[19]。并且确认有关安全性、特殊法及技术要求的相容性。
  • 决策及治理:提供有关软件的分析,可能和组织本身,或是和软件开发有关的人士

。软件智能可以量测软件开发的生产力,和企业目标之间的差距,相关资料可以给企业以及IT部门的主管[20]。评估以及基准测试可以帮助企业以及IT部门主管针对软件进行正式、以事实为基础的决策[21]

行销观点

软件智能已逐渐的用在上述的应用中。以下是行销层面需要此一技术的原因:

  • 应用软件组合分析(Application Portfolio Analysis、APA):目的在提升企业的效能[22][23]
  • 软件评估,以产生软件的KPI[24],提升品质及生产力
  • 软件开发安全以及其恢复力(resiliency)的评估及确认
  • 软件演进或是旧软件的现代化,需要软件系统的蓝图,或是工具提升、机能修改之类的议题

参考资料

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads