热门问题
时间线
聊天
视角
软件智能
来自维基百科,自由的百科全书
Remove ads
软件智能是对软件资产内部结构状态的了解,是透过专用软件来分析数据库结构、软件框架及源代码后的产物,目的是了解并管理复杂的软件系统[1]。软件智能和商业智能(BI)类似,都是用数据挖掘及探究软件内部架构的软件工具及相关技术所产生。分析结果可以用在商业上,提供给和软件有关的人士,以便进行决策、讨论软件的健康情形、量度软件开发组织的效率,并且预防大型的软件灾难[2]。
相关层面
软件元件及主题既有复杂性,范围又很广,软件智能和以下的软件层面有关:
- 软件组成是指建构软件应用元件的过程[3]。元件是从撰写软件程式码而来,也包括整合程式码以及外部元件:开源程式、第三方元件或是框架。其他的元件可能是由应用程序接口呼叫函式库或是服务而来。
- 软件架构是指系统各元件的结构及组织、彼此之间关系、以及元件的性质。
- 软件缺陷是指会造成安全性、稳定性、恢复性相关问题的错误,或是会产生非预期结果的错误。有关软件缺陷,还没有一个标准的定义,不过最多人接受的定义是来自非营利组织MITRE的定义,其中会用通用缺陷列表将软件缺陷进行分类[4]。
- 软件等级是评估软件的属性。以往的分类以及词语是源自ISO/IEC 9126以及后续的ISO 25000:2005[5]品质模型。
- 软件经济学是指过去、现在及未来有关软件开发需要资源的评估,目的是为了决策以及管理[6]。
Remove ads
组成
软件智能有以下的组成内容:
- 程式码分析器,可以识别编程语言产生的物件、开源软件产生的外部物件、第三方物件、框架、应用程序界面(API)或是服务,作为其他软件智能分析的资讯基础。
- 软件产品或是应用程序内在架构的图形视觉化,以及相关蓝图[7],其中包括相依性,从资料取得(自动化实时的资料撷取,或是终端用户输入)到资料的储存、软件中不同的层次[8]、以及各元件之间的耦合。
- 在元件和影响分析特征之间浏览及切换的能力
- 软件缺陷列表,在架构或是程式撰写上违反标准最佳实务的部分[9],防范不正常的资料调用,避免影响软件的安全性及整合性[10]。
- 软件结构及软件质量的评级或评分,对应标准可能是工业标准,像是OMG、IT软件品质协会(CISQ)或软件工程学院(SEI),会针对软件可靠度、安全性、效率、可维护性、是否可以扩展到云端或是其他系统等。
- 量化及评估软件经济学(包括工作量、程式大小及技术负债)的度量[11]。
- 产业参考以及基准测试,可以在产业标准及各分析的输出上比较。
Remove ads
使用者的层面
若希望软件智能系统顺利的在企业内导入,就需要有使用者相关的考量。最终的目的是软件智能系统可以被使用者接受,在日常作业中应用,为组织加值。若系统无法完成使用者的任务,依照M. Storey在2003年所述的,使用者就不会使用此一系统了[12]。
在程式码以及系统呈现的层面上,软件智能系统需要可以提供不同程度的抽象化:为了了解并且分析软件系统,在设计、解释、文件化上都需要抽象的观点,也需要另一个详细的观点[13]。
在管理的层面上,客户对软件智能的接受度和系统的内在功能有关,也和系统的输出有关。包括了以下的需求:
应用
软件智能已应用在许多和软件环境有关的企业中,可能是针对专业软件、个人用软件或是嵌入式软件。 依照元件的用途以及企业应用的原因,软件智能可能和以下事务有关:
- 软件更改以及现代化:可以针对所有内部元件、外部整合的程式、对内部或外在元件的呼叫产生一致性的文件,以及软件的蓝图[18]。
- 软件复原性及安全性:针对产业标准进行度量,并且诊断IT环境下的结构性缺陷[19]。并且确认有关安全性、特殊法及技术要求的相容性。
- 决策及治理:提供有关软件的分析,可能和组织本身,或是和软件开发有关的人士
。软件智能可以量测软件开发的生产力,和企业目标之间的差距,相关资料可以给企业以及IT部门的主管[20]。评估以及基准测试可以帮助企业以及IT部门主管针对软件进行正式、以事实为基础的决策[21]。
行销观点
软件智能已逐渐的用在上述的应用中。以下是行销层面需要此一技术的原因:
参考资料
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads