📜  软件经济学的演变

📅  最后修改于: 2021-08-24 04:42:32             🧑  作者: Mango

软件工程中的软件经济学是一个成熟的研究领域,通常处理最困难和最具挑战性的问题以及评估软件,确定或估算其生产中通常涉及的成本的问题。 Boehm和Sullivan概述了这些困难和挑战,还介绍了如何应用软件经济学原理来改善软件设计,开发和演进。

软件经济学基本上位于信息经济学乃至软件设计与工程的交汇处。大多数的软件成本模型通常抽象成五个基本参数的函数。这些参数如下:

  • 尺寸 –
    通常根据源指令的数量或SLOC(代码的源代码行)或实现所需功能所需的函数点的数量来度量或限定大小。开发或创建所需功能需要最终产品或结果的大小。
  • 过程 –
    该过程是用于指导所有活动并生产最终产品的步骤,尤其是避免或忽略没有增加任何价值的活动的能力。它还支持朝着目标或目标前进,并消除不必要或不重要的活动。
  • 人员 –
    总体而言,软件工程人员的能力,尤其是他们在计算机科学问题或与项目应用领域有关的问题上的经验。它强调团队和团队责任。
  • 环境 –
    它简单地由各种可用的工具和技术以及自动化过程组成,这些工具和技术和自动化过程可用来有效地支持软件开发和工作。
  • 质量 –
    所需的质量及其功能,性能,可靠性,可伸缩性,可移植性,可用性,用户界面实用程序,适应性等等。

在这些参数之间,关系和估计成本可以通过以下方式编写:

Effort = (Personnel) (Environment) (Quality) (Size Process) 

几代人的软件开发–
软件开发分为三代,如下所述:

  • 常规发展(1960年代和1970年代)–
    在这一代人中,组织使用了各种自定义工具,自定义流程以及以原始语言构建或开发的所有自定义组件。大小为100%自定义。在这一代,常规开发通常被认为是不好的。这是因为它总是很昂贵,而且超出预算和进度。它还不能满足某些组件,符号语言,其他语言(例如Fortran,PL / 1等)等必要的要求。性能质量始终很差,而且还差强人意。
  • 过渡时期(1980年代和1990年代)–
    在这一代人中,组织使用了通常以高级语言开发的各种可重复过程和现成的工具,并且更有可能使用自定义组件。大小是基于组件的30%和自定义的70%。判断它是好还是坏是无法预料的。过渡开发很少按预算和时间表进行。一些商业组件很容易获得,例如数据库,与操作系统联网,数据库管理系统和图形用户界面。但是由于复杂性的增加,所有可用的语言和技术还不足以实现所需的业务绩效。
  • 现代(2000年及以后)–
    通常对现代开发流程进行测量和管理,集成的自动化环境,70%的现成组件。大小基于组件的70%和自定义的30%。现代发展通常在预算和时间表内。

改进的“过程”需要改进的“工具”。改进的过程需要环境支持。除环境自动化,尺寸减小和过程改进外,其他各种技术也不相互独立。在新时代,主要的关键只是所有这些技术的互补性增长。