软件成本度量及造价分析(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-05 07:01:13

点击下载

作者:李华北

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

软件成本度量及造价分析

软件成本度量及造价分析试读:

总序 PREFACE

信息技术产业发展和应用已进入一个全新的时代,软件成为新一代信息技术产业的灵魂。当前,软件和信息技术服务是引领科技创新、驱动经济社会转型发展的核心力量,是建设制造强国和网络强国的核心支撑。“软件定义”是信息革命的新标志和新特征,其推动信息技术应用进入跨界融合,呈现“网构化、普适化、智能化”的新趋势,不断催生新平台、新模式和新思维,形成以云计算、大数据、物联网、人工智能等为主导的信息应用新业态,同时成为制造业转型升级的关键支撑。

管理是指一定组织中的人员在特定环境下,对组织所拥有的资源进行有效的计划、组织、领导和控制,以便实现组织既定目标的活动过程。管理是一种社会现象,具有明确的任务、职能和层次,其载体是组织,主体是管理者,核心是处理好人际关系,管理工作的有效性追求效率和效果两个方面。管理具有自然属性和社会属性,是科学性和艺术性的统一,包括计划、组织、人员配备、领导和控制等职能。

随着国家建设制造强国、网络强国战略的实施,以及信息产业和数字经济的推进,无论是传统行业还是新兴领域,软件和信息技术产品和服务的应用都越来越广泛,其质量的好坏将对行业产生重要的影响,这些影响体现了软件和信息技术组织的企业管理水平。但是,软件和信息技术组织的产品和服务与传统行业相比有很大的区别,其管理有其特殊性,如组织战略目标、组织结构形式、产品开发和服务模式、人员的组成及其管理方式、绩效管理和控制方法等,都与传统的管理模式有很大的区别。所以,针对上述问题,以及云计算、大数据、物联网、人工智能等新业态和环境所带来的变化,软件和信息技术组织管理形态如何定义、变化和控制,传统软件工程、硬件工程管理方法模式如何发展和更新,产品和服务的过程管理如何开展、运作等,是当前用户、厂商和产业链上的所有合作伙伴所面临的关键问题,亟须建立新的管理概念和模式,推动行业健康发展。

近年来,工业和信息化部电子第五研究所认证中心(以下简称赛宝认证中心)承担了大量产业政策研究、企业管理、两化融合任务,为软件和信息技术服务业、传统制造业等提供了快速、有效的服务,且深感管理技术及其工程实践经验对企业的重要性。

为了使广大管理人员和技术人员能够快速掌握新型管理的基本方法和模式并应用于管理、工程实践,同时顺应新技术、新方法应用的发展,解决上述变化产生的问题,赛宝认证中心编写了“基于数据和度量的软件和信息技术管理”系列丛书。本系列丛书由四本著作组成,分别覆盖四个方面的内容。(1)新时代软件和信息技术产品研发模式和方法。认识“新业态下的产品和服务管理特点,分析常用的开发方法和生命周期,如迭代、顺序模式等,建立新时代的产品和服务开发理论。(2)软件和信息技术产品质量模型及工程。基于ISO 25000系列标准,建立现代IT产品质量度量模型,评价IT产品和服务质量;同时,建立产品和服务质量指标与工程过程的关联模型,通过过程管理实现产品和服务的质量目标。(3)度量方法及高成熟度管理。强化管理基于数据的概念,定义度量系统和方法,建立度量系统和管理过程的联系,建立高成熟管理的基线和模型特征,实施量化管理方法,分析其根本原因,应用度量系统实现高成熟度管理目标。(4)软件成本度量及造价分析。体现软件价值,完善、建立软件产品造价模型、方法和评估机制,通过行业数据的采集和分析,深化软件工程造价标准的应用,引入第三方评估计价机制,改善低价竞标、恶性竞争的市场环境。

四个方面形成一个有机整体,根据新时代的产品和服务特点,建立开发模式和度量系统,使组织达到高成熟度管理水平,从而提高国际竞争力。

本丛书的主要目的是让读者了解软件和信息技术新时代的管理模式变化,以及度量在管理过程中的重要作用;指导读者应用度量系统等管理方法,使组织实现高成熟度的管理目标。

前言 FOREWORD

进入21世纪以来,软件和信息技术应用的飞速发展,已经广泛覆盖并渗透到了社会生活的方方面面。特别是近十年来,以云计算、大数据、物联网、人工智能等为代表的新一代信息技术推动信息技术应用进入跨界融合的繁荣期。无所不在的软件,正在走出信息领域的范畴,开始深度渗透到物理世界和人类社会的各个方面,并扮演着重新定义整个世界的重要角色,我们正在进入一个“软件定义一切”的时代。

如何科学、规范地对软件成本进行度量和计价,一直是业界的难题和关注重点。2013年,工业和信息化部发布了行业标准《软件研发成本度量规范》(SJ/T 11463),提出了以功能点估算为基础的软件研发成本估算方法和标准,对软件研发成本的估算和度量工作做出了明确的指引和说明。经过多年的推广应用,很多政府部门、金融企业、信息技术企业等,均开展了基于行业标准的软件成本度量、计价和招投标工作,并根据应用实践,形成了行之有效的、系统的实施办法。

赛宝认证中心作为标准起草和推广应用的核心单位,先后为国内很多知名企业和机构提供了不同成熟度级别的软件成本度量和计价的培训、咨询和评估业务,积累了丰富的实践经验。赛宝认证中心以此为基础,结合软件度量技术方法和标准,形成了适用于软件组织定制化、高效化的软件成本度量体系方法和模型。基于此,赛宝认证中心总结多年经验教训,创新性地建立适用性技术方法和标准,编写了本书,供软件成本度量和造价相关人员学习参考,以解决软件组织和管理人员的迫切需求,共同推动软件成本度量体系和方法在软件行业的实践与应用。

本书共10章,主要内容如下。

第1章 软件成本度量及造价概论

。介绍了当今和未来社会软件的定义、地位和发展,以及软件成本度量和造价的基本思路,包括软件造价方法和标准的实践及完善。

第2章 规模计数方法。介绍了软件功能需求和非功能需求规模计数的常用方法,对各规模计数方法及应用范围进行了对比分析。

第3章 NESMA应用。介绍了国际功能点方法NESMA标准的功能点分析基本步骤、三种估算方法(指示、估算、详细)、通用计数规则、规模调整等,通过案例分析具体说明NESMA应用。

第4章 SNAP应用。介绍了软件非功能规模计数SNAP标准的基本概念、基本原理、计数规则及方法的应用。

第5章 COSMIC应用。介绍了国际功能点方法COSMIC标准的基本概念、度量基本模型、度量基本过程、方法应用及应用中的常见问题。

第6章 基准数据库的建立及应用。介绍了基准数据库的目的、建立与维护,基准数据库的常用工具和方法,包括测量元定义、基准数据分析方法、基准比对方法、功能点字典应用等,并通过基准数据库实例,具体说明数据库的应用。

第7章 工作量和工期估算。介绍了工作量估算的常用方法、估算模型及典型案例应用,以及工期估算的过程、方法和工期进度控制与分析等。

第8章 成本估算。介绍了软件成本的定义和构成,软件成本估算过程、估算常用方法、估算模型和典型案例应用,以及软件成本的测量与分析。

第9章 软件造价分析。介绍了软件产品及其价格特点,软件产品定价的主要影响因素、定价过程、定价策略、定价方法等。

第10章 行业实施规则及整体案例分析。通过项目预算、项目招投标、项目计划、项目管理、项目结算5个典型场景的完整案例,说明在实际业务中如何应用本书中介绍的方法、工具、经验,开展软件成本度量工作。

参与本书写作工作的人员有李华北、吴小庆、韩珊、李咏华、何建煌、张旭、门轩庭、白溥,参与本书审校工作的人员有李华北、谢映瑶,感谢上述人员对本书写作和审校工作的大力支持,希望本书能够给众多IT服务企业及从事软件成本度量和造价分析工作的相关人员提供帮助,也热忱欢迎广大读者对本书提出宝贵的意见和建议。李华北2018年4月16日第1章软件成本度量及造价概论1.1软件的地位和发展1.1.1 软件的定义

软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲,软件可划分为系统软件、应用软件和介于这两者之间的中间件。软件不仅包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单地说,软件就是程序加文档的集合体。另外,软件也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规,等等。计算机软件的含义包括如下三个方面:(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合。(2)程序能够满意地处理信息的数据结构。(3)描述程序功能需求及程序如何操作和使用的文档。

软件具备如下特点:(1)软件是无形的,没有物理形态,只能通过运行状况来了解其功能、特性和质量。(2)软件渗透了大量的脑力劳动,人的逻辑思维、智能活动和技术水平是软件产品的关键。(3)软件不会像硬件一样老化、磨损,但需要进行缺陷维护和技术更新。(4)软件的开发和运行必须依赖于特定的计算机系统环境,且对于硬件也有依赖性,为了减少依赖,在开发软件过程中提出了软件的可移植性。(5)软件具有可复用性,软件开发出来很容易被复制,从而形成多个副本。

软件也是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交互。软件是计算机系统设计的重要依据。为了方便用户和使计算机系统具有较高的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。

计算机软件与一般硬件产品相比有很大的区别,主要包括如下几个方面:(1)硬件有形,有色,有味,看得见,摸得着,闻得到。而软件无形,无色,无味,看不见,摸不着,闻不到。软件大多存在于人们的脑中或纸面上,它的正确与否,是好是坏,一直要到程序在机器上运行才能知道。这就给设计、生产和管理带来了许多困难。(2)计算机软件生产方式不同,软件需要开发,它是人的智力的高度发挥,不是传统意义上的硬件制造。尽管软件开发与硬件制造之间有许多共同点,但这两种活动是根本不同的。(3)计算机软件要求不同。硬件产品允许有误差,而软件产品却不允许有误差,但软件产品允许存在缺陷。(4)计算机软件维护不同。硬件是会用旧、用坏的,理论上,软件是不会用旧、用坏的,但实际上,软件也会变旧、变坏。因为在软件的整个生命周期中,一直处于更新、维护状态。

长期以来,软件的应用已渗透到各个行业,其种类繁多。软件的分类目前尚没有统一、科学的标准。常用的软件分类方法包括以下几种。

1.按照软件的应用对象分类

1)系统软件

系统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件。系统软件负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当成一个整体而不需要顾及底层每个硬件是如何工作的。

操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。

支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境(SDE)。它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司的Studio.NET等。这些支撑软件包括一系列基本的工具,如编译器、数据库管理、存储器格式化、文件系统管理、用户身份验证、驱动管理、网络连接等方面的工具。

2)应用软件

系统软件并不针对某一特定应用领域,而应用软件则相反,不同的应用软件根据用户和所服务的领域提供不同的功能。应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,如一个图像浏览器;也可以是一组功能联系紧密、可以互相协作的程序的集合,如微软的 Office 软件;还可以是一个由众多独立程序组成的庞大的软件系统,如数据库管理系统。

如今智能手机得到了极大的普及,运行在手机上的应用软件简称手机软件,它能完善原始系统的不足与实现个性化。随着科技的发展,手机的功能也越来越多,越来越强大。而且手机功能的设计不像过去那样简单死板,而是发展到了可以和掌上电脑相媲美。需要注意的是,下载手机软件时还要考虑手机所安装的系统来决定所要下载的软件。手机主流系统包括Android、iOS、Windows Phone、Symbian等。

不同的软件一般都有对应的软件授权,软件的用户必须在同意所使用软件的许可证的情况下,才能合法地使用软件。从另一方面来讲,特定软件的许可条款也不能与法律相违背。

2.按照软件的授权类别分类(1)专属软件:此类授权通常不允许用户随意复制、研究、修改或散布该软件。违反此类授权通常会负严重的法律责任。传统的商业软件公司会采用此类授权,如微软的Windows系统和办公软件。专属软件的源代码通常被公司视为私有财产而予以严密保护。(2)自由软件:此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源代码供用户自由使用,仅给予些许的其他限制。Linux、Firefox和OpenOffice是此类软件的代表。(3)共享软件:通常可免费取得并使用其试用版,但在功能或使用期限上受到限制。开发者会鼓励用户付费以获取功能完整的商业版。根据共享软件作者的授权,用户可以从各种渠道免费得到,也可以自由传播。(4)免费软件:可免费取得和转载,但并不提供源代码,也无法修改。(5)公共软件:原作者已放弃权利,著作权已过期,或作者已经不可考究的软件。使用上无任何限制。

根据工业和信息化部运行监测协调局的《软件产业统计制度修订说明》,软件分类如表1-1所示。表1-1 软件分类(续表)

根据《国民经济行业分类》(GB/T 4754—2011)标准,软件行业分类及代码和软件分类目录及代码分别如表1-2和表1-3所示。表1-2 软件行业分类及代码(续表)表1-3 软件分类目录及代码(详细的软件分类)(续表)(续表)(续表)(续表)1.1.2 软件的地位

当前,全球软件行业正处于成长期向成熟期转变的阶段,而中国的软件行业正处于高速发展的成长期。随着中国软件行业的逐渐成熟,软件和信息技术服务收入将持续提高,发展空间广阔。中国企业用户的信息技术需求已从基于信息系统的基础构建应用转变成基于自身业务发展构建应用,伴随着这种改变,连接应用软件和底层操作软件之间的软件基础平台产品呈现出旺盛的需求。

受益于经济转型、产业升级,我国软件行业呈现加速发展态势。中国正处于经济转型和产业升级阶段,正从以廉价劳动力为主的生产加工模式,向提供具有自主知识产权、高附加值的生产和服务模式转变,其中信息技术产业是经济转型和产业升级的支柱和先导,是“两化融合”的核心,软件产业是信息技术产业的核心组成部分。随着经济转型、产业升级进程的不断深入,传统产业的信息化需求将会不断激发,市场规模将逐年提升。同时,伴随着人力资源成本的上升,以及提高自主核心竞争力的双重压力,信息技术应用软件和专业化服务的价值将更加凸显。

1.软件生态系统

随着信息网络技术的快速发展和应用的普及,软件越来越多地以服务的形式进入传统行业,并与电子商务、电子政务等商业流程、业务流程紧密结合。在软件与服务、网络与软件融合的过程中,苹果、微软、华为、亚马逊、阿里巴巴、腾讯、甲骨文、SAP、用友、金蝶等国内外大企业纷纷加快自身转型,通过业务整合、打造开放平台、跨界合作等方式,积极探索新模式和新的应用领域,建立软件生态系统。

生态系统的概念源于生态学,是指在一个地区所有的植物、动物、微生物(生物因素)和所有的非生物物理(生物的)环境因素共同起作用的自然单元。一个人类的生态系统是参与者、参与者之间的连接、物理或非物理因素的连接之间的交易,一般分为商业生态系统和社会生态系统。在商业生态系统中的参与者是企业、供应商和客户,因素是商品、服务和交易,包括信息和知识的共享、查询、售前和售后联系方式等。社会生态系统包括参与者,以及他们的社会关系和各种形式的信息交换。

一个软件生态系统包括一套软件解决方案。在相关的社会或商业生态系统中,这些方案提供参与者能够支持和自动执行的活动和交易。当然,一个软件生态系统也是一个生态系统,特别是一个商业生态系统,因此,商品和服务是能为活动和交易提供支持或自动执行的软件解决方案和软件服务。这一类生态系统已经存在几十年,如20世纪90年代初,为谋取桌面操作系统的霸主地位,获得最具影响力和数量最多的第三方开发者的支持,IBM和微软等公司建立的相关软件生态系统。

软件的生态系统存在于多个领域和层次,体现类似的应用价值和意义。如图1-1所示,可以用平行和垂直两个维度描述这些生态系统。平行维度的软件生态系统为互联网大平台,提供不同应用领域的全面服务,如云计算、互联网、大数据、人工智能等。垂直维度关注在某个行业领域,包括操作系统、应用程序和终端用户编程定义等多个层次,形成行业应用平台。图1-1 软件生态系统

1)以操作系统为核心的软件生态系统

以操作系统为核心的软件生态系统有明确识别和管理的标志,如Windows、Linux和苹果的OS X。Windows是目前占主导地位的操作系统,在20世纪90年代初,它与IBM的OS/2和Mac OS是竞争关系。最近几年,Linux和苹果的OS X都分别在服务器和客户端桌面获得了一定的市场份额。

操作系统生态系统的成功,是由建立在它之上的应用程序决定的。因此,成功的关键因素是,开发者在操作系统之上构造应用程序时,尽量简化其工作。

虽然操作系统提供通用功能,但是为了吸引开发者,它需要不断地扩展其功能集。对操作系统来说,决定其成功或失败的重要因素是,能够包含早期的商品化功能,而不疏远现有的开发者。

不同硬件配置的复杂度很容易使效率降低。对于台式机、移动设备和各种类型的设备而言,由于物理配置的不同,应用程序很容易不兼容。尤其在硬件功能发生快速进化的移动领域,个别设备开发最新功能和老设备向后兼容,是很难维持平衡的。

2)以应用程序为中心的软件生态系统

在某种程度上,以应用程序为中心的软件生态系统与以操作系统为中心的软件生态系统是相反的。以应用程序为中心的软件生态系统是特定领域,通常从市场上成功的应用程序开始,而且这些应用程序没有生态系统的支持。一个公司在该领域成功的第一步是,创建大量的用户群,并且有稳健的财务基础。

成功的应用程序往往会产生大量的特殊需求,公司由于其有限研发资源和商业模式,通常不允许用户子集的特殊应用,因此无法满足这些需求。对于这个问题,公司通常会提供 API,那么用户能聘请软件工程师来扩展具有用户特定功能的应用程序。一旦公司通过提供 API 来开放应用程序,应用程序就会变成一个特定领域的平台,第三方开发者可以在此之上扩建其他应用程序,为用户子集增加价值。假设公司从应用程序成功转变成平台,那么软件生态系统的建立就为第二阶段的快速发展奠定了基础。

有许多公司不断改进其产品,已成为软件生态系统的平台,给经营策略、架构、开发流程和研发部门带来了许多改变。

以应用程序为中心的软件生态系统的特点是:应用程序平台通常是从一个成功的在线应用程序开始。平台提供者经常提供托管服务或其他技术,为用户在第三方开发者和平台间带来无缝体验。在以操作系统为核心的生态系统中,开发者构建自己的应用程序。与此不同的是,在平台上,第三方的应用程序开发者扩展特定领域的功能。为了实现无缝集成和为用户增加价值,应用程序开发者在平台和扩展间深度集成,以便数据、工作流交互和提高用户体验。

以应用程序为中心的软件生态系统最重要的成功因素是有大量的用户或者说这些用户能够扩展平台、增加功能的前景,即潜在客户池。虽然大多数的应用平台公司专注于提供数据的访问,提供扩展数据模型的解决方案和工作流程,但平台公司更应该注重简化第三方开发者的工作,允许他们使用通用和流行的开发环境、稳定的接口、Web 应用程序、容易的部署和集成的平台。从用户角度来看,相同用户体验架构的集成对于无缝集成是很重要的。如果需要付费给第三方开发者,平台公司就要提供可行的通道,使用户看到第三方开发者的贡献。

应用平台遇到的主要挑战是产品战略和平台战略的冲突。整个公司都关注产品战略,即公司已实现了第一次成功,现在需要向平台战略转变,这两种战略都将产生深远的影响。从产品战略的角度来看,首先,平台战略并不为用户产生新的价值,因为它主要为第三方开发者创造价值。其次,平台战略限制了改变API、用户界面和数据模型的自由,尤其是由于最初平台战略的相对优先级尚未充分确定,平台公司很可能造成二元断裂。

为第三方开发者建立一个可行的商业模型是一个可望而不可即的目标,对于大多数的软件生态系统来说是很难实现的。对于以应用程序为中心的生态系统,应用平台有其自身的优点,但吸引用户是其一大挑战。

3)终端用户编程的软件生态系统

相较于前两个,终端用户编程的软件生态系统是比较小的和不太重要的。软件平台提供的配置和组合环境是直观的,那么终端用户可以自己创建所需的应用程序。

大多数终端编程的生态系统采取特定领域的编程语言(DSL)、图形或者文字。实际上,DSL 捕获相关应用程序的特定领域平台的变化和组合点,并通过工具公开这些,以便配置和组合。由于大量的工作需要创造DSL和它周围的工具,因此最终用户可以创建应用程序的空间是有限的。

终端用户编程的软件生态系统的例子有Microsoft Excel、Lego Mindstorms(乐高头脑风暴),以及基于流的混搭创建工具,如Yahoo!管道和微软的Popfly。

终端用户编程的软件生态系统主要集中在应用程序开发人员,他们对该领域有很好的理解,但没有计算机科学或工程的基础知识。从软件工程师的角度来看,终端用户编程往往关注预先创建的积木的创造性组合,而不是从根本上创建新的功能。

最终用户自己通过创建一个独特的解决方案产生价值。实际上可以有小的用户子集创建应用程序,提供有效的共享应用程序的方法,以便更多的用户采用、调整和使用这些解决方案,这是至关重要的。这一类生态系统的经济效益很低,最终用户参与应用程序创建和共享的动力是他们的身份和地位。

到目前为止,终端编程的生态系统面临的最大挑战是模块化应用领域,使最终用户能以小的指令理解和直观地创建应用程序,从而简化最终用户的理解。许多领域太复杂,以至于不能创建满足大量用户需求的有特定的语言、相关的配置、组成环境的领域。最终用户创建的生态系统领域必须是足够稳定的,可以减少维护创建这个领域的工具基础设施的工作量。

平台(无论是操作系统还是应用)是生态系统构建的核心,能够集聚开发者、合作伙伴和用户,汇聚技术、内容、应用等重要资源,强化对产业链上下游的把控。目前,以综合信息平台、社交网络平台、电子商务平台、第三方支付平台等为代表的平台迅速崛起,成为企业构建竞争力的核心。随着软件和服务的进一步深化耦合,软件、应用与服务加快协同发展,微软、甲骨文、SAP、金蝶、用友等国内外软件开发企业纷纷通过开放平台建设向服务化转型。甲骨文积极打造Oracle云端平台服务,为用户提供简便、快速的服务,包括巨量资料分析、整合、流程管理、Java平台、Java标准版(Java SE),以及服务器端JavaScript的Node.js。为加快服务化转型,用友推出了定位小微企业的CSP公有云平台,为小微企业提供会计家园、记账宝、工作圈、易代账、客户管家等各种实时在线的云服务;久其软件建设了物流互联网平台“空中物流港”,为用户提供智能配货服务、物流黄页、货源推荐、政务通知、地图导航等多样化服务。

2.软件基础平台

软件基础平台是用来构建与支撑企业尤其是大型企业各种IT应用的独立软件系统,包含可复用的软件开发框架和组件。它是开发、部署、运行和管理各种IT应用的基础,是各种应用系统得以实现与运营的支撑条件,可以帮助客户达到应用软件低成本研发、安全可靠运行、快速响应业务变化、规避技术风险的目的。

软件基础平台介于底层的操作系统、数据库和前端的业务系统之间,是更为贴近前端业务应用的软件层级,它承载了所有的应用系统,是实现软件全生命周期核心资产的共享与复用、降低多系统多项目并行构建与管理复杂度的一套实践体系。

1)SOA架构下的软件基础平台

SOA是一种软件架构方法,在SOA架构下,应用软件被划分为具有不同功能的服务单元,并通过标准的软件接口把这些服务连接起来。当企业业务需求变化时,不需要重新编写软件代码,而是把服务单元重新组合和编制,从而使企业应用系统获得“组件化封装、接口标准化、结构松耦合”的关键特性。这样,以SOA架构实现的应用系统可以更灵活、快速地响应企业业务变化,实现新旧软件资产的整合和复用,极大地降低软件的整体拥有成本。

相对于传统软件架构,业界把SOA这种软件设计方式比喻成“活字印刷术”。在“活字印刷术”发明之前是“雕版印刷术”。活字印刷术的发明改善了雕版印刷术的不足,将每个字按标准的规格设计成单个活字,可随时拼版,大大地提高了印刷效率。活字字版印完后,可以拆版,活字可重复使用,且活字比雕版占用的空间小,容易存储和保管。传统软件架构的应用软件就像是“雕版印刷”的雕版一样,软件由千百万行代码组成,按业务功能来划分,如ERP、CRM等,软件形态耦合度很高。当业务发生变化时,传统软件架构无法及时响应;同时,已开发的软件系统在需求变化后,往往需要推倒重来,从而造成软件复用度低,总体拥有成本高。

2)软件基础平台与云计算和大数据技术相融合

云计算是一种基于互联网的计算方式,通过这种方式,共享的软/硬件资源和信息可以按需提供给计算机和其他设备。互联网上汇聚的计算资源、存储资源、数据资源和应用资源正随着互联网规模的扩大而不断增加,云计算技术使得企业能够方便、有效地共享和利用这些资源,并已成为新一代软件基础架构的底层计算架构。大型企业和政府用户逐步采用云计算技术构建云计算基础设施,或者采用公有云服务方式,或者自建私有云,以更高效地利用资源,将传统的企业软件升级为云环境运行,以服务的方式提供给内部的员工、业务部门和外部的供应商与合作伙伴。但是,企业往往缺少相关的技术能力和知识储备,也缺乏软件的支持来实现对计算、存储和网络资源的统一管理,这些用户需求使得软件基础平台必须形成云计算的支撑能力。

强大的云计算能力使得降低数据提取过程中的成本成为可能。随着行业应用系统的规模迅速扩大,行业应用所产生的数据呈爆炸性增长,已远远超出了现有传统的计算技术和信息系统的处理能力。大数据应用与传统的数据应用相比,具有数据体量巨大、数据类型繁多、查询分析复杂、处理速度快等特点。大数据技术就是提供从各种类型的数据中快速获得有价值信息的能力,其核心是数据集成、数据管理、数据存储与数据分析。因此,寻求有效的大数据处理技术、方法和手段已经成为迫切需求。

软件基础平台作为构建和支撑企业应用的独立软件系统,必须适应云计算和大数据技术的发展。新一代的软件基础平台将融合SOA、云计算、大数据的功能与技术架构,为客户的业务提供新的技术价值,帮助客户的业务向数字化转型。

云计算和大数据的核心也是服务,计算、存储、数据、应用等都属于服务,SOA可以发挥其在系统界面和接口标准化等方面的优势,为云计算和大数据提供一个较好的技术平台。SOA在应用层面进行资源整合,云计算在基础设施层面进行整合,大数据满足了企业对数据管理的要求,三者的融合可以使企业用户获得更大的价值。

3.软件定义世界

基于软件生态系统的概念,未来所有的企业,不管是传统企业还是非传统企业,不管是制造企业还是服务企业,其实都是软件企业,都是数据驱动的企业。(如果企业的生产制造与用户需求实现无缝对接,或者企业的生产制造、产品与服务供给完全基于数据来驱动,或者企业的经验积累、企业的核心资产都以数字化来呈现,或者企业基于数据来运营,那么,这些企业就是软件企业。)软件像一个“幽灵”,在我们这个时代“无孔不入”“无处不在”。软件定义网络、定义基础设施、定义存储,软件改变了原有的网络、计算、存储,软件改变了制造业、零售业、运输业、金融业。在这样一个软件无所不在、软件定义一切的背景下,需要突破“边界思维”来推动企业的发展和变革。

图1-2和图1-3显示了应用“互联网+智能制造2025”,实现软件定义世界和软件定义一切的原理。

软件产业归根结底是对信息的组织、传递和加工。信息系统因不断地优化处理信息的手段而来,现在已经变成所有的信息设备和装置,以及操纵和使用信息系统的人员都实现了互联互通、互操作。这正是软件生态系统和协同管理理念的体现。

当前,软件定义正成为信息技术行业的热词,其具体概念也从SDN(软件定义网络)开始,逐步扩展到软件定义存储、软件定义 SSD,甚至软件定义数据中心、软件定义信息技术基础架构等诸多领域,其已经成为企业缩减成本、扩展需求的一把利剑。这些还只是冰山一角,未来所有的硬件组织形式,都会以软件定义的形式出现,也就是“软件定义一切”。图1-2 互联网+应用图1-3 智能制造1.1.3 软件的发展

2006年以来,随着国民经济的持续高速增长,中国软件行业保持快速、健康发展态势,“十一五”期间,软件行业收入年均增速达31%。2016年,在整体经济增长放缓的条件下,软件行业依然保持快速增长态势。2016年,中国软件行业共实现业务收入4.9万亿元,同比增长14.9%。2007—2016年我国软件业务收入及增长情况如图1-4所示。图1-4 2007—2016年我国软件业务收入及增长情况

当前,中国正处于快速发展的大好时期,而软件产业更是处在风口浪尖。到2020年,中国软件产业规模将超过8万亿元,将占GDP的4%,成为中国的核心支柱产业。中国软件产业已经开始进入定义一切、无所不在、无处不在的新时代。进入互联网+时代后,软件产业与此前相比已经有了本质的区别。从基础的互联网、通信层到具体的应用层,软件产业的发展已经开始逐步突破“软硬结合”的传统观念,从产品化走向服务化。中国软件产业的形态已经开始向平台化、智能化和网络化等方向发展,目前处于良好的上升时期。

软件正以跨界融合的新面目,打破旧秩序,重构新世界。中国信息技术刚起步时,单独的软件被认为没有价值,必须和硬件一起卖。而今天的软件不仅有独立的价值,还能够定义硬件。华为用软件定义网络,苹果用软件定义手机,特斯拉用软件定义汽车。尤其是云计算、大数据、移动互联网、人工智能等新技术推动的新软件浪潮,正在定义企业创新,定义新的商业模式,如图1-5所示。

在过去的几十年中,全球和中国企业发展已经先后走过以制造为核心、以营销为核心的时代,现在已进入以创新为核心的时代。人们必须转换思维,通过创新,通过企业互联网化,以应对商业环境的变化和经济的不确定性。互联网技术正在重塑企业商业场景,企业边界、资源、经营要素、资产正在发生巨大的变化。企业之间正在打破边界,形成生态经济;企业与消费者之间的关系正在改变,形成粉丝经济;企业营销必须全员参与,形成社群经济。受移动互联网、云计算、大数据和人工智能技术的驱动,企业互联网部署模式与在消费端的模式不同,有公有云模式、私有云模式和混合云模式。但是部署模式和技术都不是最关键的,最关键的是应用,几个焦点应用为:数字营销和客户服务场景,社群经济的社交与协同办公,智能制造,面对企业的共享服务。中国的信息技术已经进入3.0时代,如图1-6所示。图1-5 软件定义世界图1-6 信息技术3.0时代“十二五”期间我国信息化发展的基本情况如表1-4所示。表1-4 “十二五”期间我国信息化发展的基本情况注:〔〕表示五年累计数。

进入21世纪以来,信息技术已逐渐成为推动国民经济发展和促进全社会生产效率提升的强大动力,信息产业作为关系到国民经济和社会发展全局的基础性、战略性、先导性产业,受到了越来越多国家和地区的重视。中国政府自20世纪90年代中期以来就高度重视软件行业的发展,相继出台了一系列鼓励、支持软件行业发展的政策法规,从制度层面提供了保障行业蓬勃发展的良好环境。

2016年7月,中共中央办公厅、国务院办公厅印发了《国家信息化发展战略纲要》(以下简称《纲要》),并发出通知要求各地区、各部门结合实际认真贯彻落实。《纲要》是根据新形势对《2006—2020年国家信息化发展战略》的调整和发展,是规范和指导未来10年国家信息化发展的纲领性文件,是国家战略体系的重要组成部分,是信息化领域规划、政策制定的重要依据。《纲要》指出,当今世界,信息技术创新日新月异,以数字化、网络化、智能化为特征的信息化浪潮蓬勃兴起。全球信息化进入全面渗透、跨界融合、加速创新、引领发展的新阶段。谁在信息化上占据制高点,谁就能掌握先机、赢得优势、赢得安全、赢得未来。《纲要》强调,要围绕“五位一体”总体布局和“四个全面”战略布局,牢固树立创新、协调、绿色、开放、共享的发展理念,贯彻以人民为中心的发展思想,以信息化驱动现代化为主线,以建设网络强国为目标,着力增强国家信息化发展能力,着力提高信息化应用水平,着力优化信息化发展环境,让信息化造福社会、造福人民,为实现中华民族伟大复兴的中国梦奠定坚实基础。《纲要》要求,坚持“统筹推进、创新引领、驱动发展、惠及民生、合作共赢、确保安全”的基本方针,提出网络强国“三步走”的战略目标,主要是:到2020年,核心关键技术部分领域达到国际先进水平,信息产业国际竞争力大幅提升,信息化成为驱动现代化建设的先导力量;到2025年,建成国际领先的移动通信网络,根本改变核心关键技术受制于人的局面,实现技术先进、产业发达、应用领先、网络安全坚不可摧的战略目标,涌现一批具有强大国际竞争力的大型跨国网信企业;到21世纪中叶,信息化全面支撑富强民主文明和谐的社会主义现代化国家建设,网络强国地位日益巩固,在引领全球信息化发展方面有更大作为。

2016年12月,国务院颁发了《“十三五”国家信息化规划》(以下简称《规划》)。《规划》旨在贯彻落实“十三五”规划纲要和《国家信息化发展战略纲要》,是“十三五”国家规划体系的重要组成部分,是指导“十三五”期间各地区、各部门信息化工作的行动指南。《规划》提出,到2020年,“数字中国”建设取得显著成效,信息化发展水平大幅跃升,信息化能力跻身国际前列,具有国际竞争力、安全可控的信息产业生态体系基本建立。核心技术自主创新实现系统性突破。信息领域核心技术设备自主创新能力全面增强,新一代网络技术体系、云计算技术体系、端计算技术体系和安全技术体系基本建立。云计算、大数据、物联网、移动互联网等核心技术接近国际先进水平。部分前沿技术、颠覆性技术在全球率先取得突破,成为全球网信产业重要领导者。信息基础设施达到全球领先水平。“宽带中国”战略目标全面实现,建成高速、移动、安全、泛在的新一代信息基础设施。信息经济全面发展。信息经济新产业、新业态不断成长,信息消费规模达到6万亿元,电子商务交易规模超过38万亿元,信息化和工业化融合发展水平进一步提高,重点行业数字化、网络化、智能化取得明显进展,网络化协同创新体系全面形成。“十三五”信息化发展主要指标如表1-5所示。表1-5 “十三五”信息化发展主要指标(续表)注:〔〕表示五年累计数。1.2软件成本度量及造价

综上所述,随着信息化程度的不断提高,相关软件已经成为产品和硬件的重要组成部分,软件的代码行与功能点越来越多,软件系统的规模越来越大,软件研制的复杂度也越来越高,使得软件的成本逐渐升高,软件复杂程度和价格已经成为产品和系统研制与发展的重要风险来源。据统计,产品及系统中的软、硬件经费比例已经从最初的20%︰80%发展到现在的80%︰20%。产品的发展越来越离不开包括信息技术在内的高技术的支撑,呈现出信息化和高技术化的主要技术特征。具有广泛渗透性和高度融合性的信息技术的广泛应用,使硬件产品的信息化程度越来越高,软件实现的功能越来越多。鉴于此,软件成本度量及造价工作需求已显现其迫切性。1.2.1 软件度量

软件成本度量和造价是整体软件度量系统的关键部分,成本和价格的影响因素很多,涉及很多度量指标。所以,一个真实、可靠的软件成本度量和造价是建立在系统的软件度量系统之上的。

度量是对项目、过程及其产品进行数据定义、收集及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善。通过度量可以改进产品开发过程,促进项目成功,开发高质量的产品。度量取向是各项工作的横断面,包括顾客满意度度量、质量度量、项目度量等。度量取向要依靠事实、数据、原理、法则;其方法是测试、审核、调查;其工具是统计、图表、数字、模型;其标准是量化的指标。

软件度量与分析的目的,就是开发和保持度量能力,以支持管理信息的需要。通过度量和分析,对组织产品和服务提供各环节的指标进行监控,客观了解组织各部门的过程和产品的实施情况;识别组织的薄弱环节,为组织过程改进和产品改进提供定量信息;并为组织管理决策提供定量信息。度量分析通过提供各种实践来支持所有其他活动,指导各个项目和组织满足度量的需要和客观目标,度量方法也将给出客观结果,丰富决策信息,支持采取适当、正确的行动。

根据IEEE的标准,度量(Metrics)定义为:“度量是一个函数,它的输入是软件数据,输出是单一的数值,能用以解释软件所具有的一个给定属性对软件质量影响的程度。软件度量是对影响软件质量的属性所进行的定量测量。”软件度量的实质是根据一定规则,将数字或符号赋予系统、构件、过程或者质量等实体的特定属性,即对实体属性的量化表示,从而能够清楚地理解该实体。软件度量贯穿整个软件开发生命周期,是软件开发过程中进行理解、预测、评估、控制和改善的重要载体。

软件度量学是在过去30多年研究非常活跃的软件工程领域。提出软件度量的原因是大家都认为结构和模块化对开发可靠软件非常重要。国际上有很多组织在关注、研究软件度量理论和技术,如国际软件工程大会(ICSE)、国际软件可靠性工程研讨会(ISSRE)、IEEE 软件度量座谈会、国际软件工程标准座谈会(ISESS)、卡内基−梅隆大学软件工程研究所(SEI)、国际化标准组织的ISO9001、ISO-SPICE等。很多软件组织通过各种不同的量度对软件生命周期中的各个元素进行度量,这些度量能够为项目管理者提供有关项目的各种重要信息,同时也是进行大部分评估活动的基础。

1974年,Wolverton第一次正式用LOC度量程序员的生产率。他提出了客观的指标——“人月”,作为生产率的度量单位,并且他认为他研究的内容可以作为典型的代码率。LOC能作为度量单位的基础是程序的长度能预测程序的特性,如可靠性和易维护性等。1979年,Albrecht提出了著名的功能点方法(Function Point Analysis)。功能点来源于需求说明书。这种方法可以用于软件生命周期的需求分析阶段,今天已被广泛应用。1981年,在LOC量度的基础上,Boehm提出了构造性成本模型(Constructive Cost Model,COCOMO),这是一种基于预测模型的成本估算方法,它定义了开发一段程序的工作量这个外部变量和LOC度量的关系。

20世纪80年代,软件度量的研究重点从度量产品的性能拓宽到实施度量的机制和方法的研究上。国内外不少组织都对软件过程度量技术进行了研究,在具体的过程度量定义方法方面,出现了很多度量过程模型。其中,最具代表性的是1984年由Basili教授和他的团队提出的目标驱动度量(Goal-Question-Metric,GQM)模型。GQM模型是一种面向目标定义度量的方法,在软件过程度量中被广泛采用。后来,美国卡内基−梅隆大学软件工程研究所对GQM模型做了改进,在Question层和Metric层之间加入了IndiCato(r 指示器),提出了GQ(I)M模型。GQ(I)M模型使得度量更加直观,易于理解。

William A.Florac和他的团队对软件过程度量的过程模型和度量分析技术进行了研究,于1999年提出了一个过程框架,该框架由六个活动组成:确定商业目标,确定问题并安排优先次序,选择和定义度量,采集、验证、保存数据,分析过程行为和评估过程性能。通过不断循环执行框架所包含的活动,达到持续改进软件过程的目的。该框架将统计过程的控制(SPC)和各种控制图表应用到软件过程度量领域,用来分析软件产品和过程的特性。另外,也有些软件组织在尝试应用类似统计过程控制的6Ω技术。在软件过程度量分析方面,ISO和IEC共同推出了关于软件度量过程的一个标准——ISO/IEC 15939。它描述的软件度量过程模型由四个活动组成:建立和维护度量能力、计划度量过程、执行度量过程和评价度量过程。这些活动顺序执行,根据获得的反馈对度量过程进行改进,并循环和迭代,持续改进。

实用软件度量(Practical Software Measurement,PSM)是由美国实用软件和系统度量支持中心提出的一种信息驱动的度量方式,是对软件度量过程的国际标准 ISO/IEC 15939的具体实现,其给出了两个度量方面的子模型——度量信息模型 MIM 和度量过程模型MPM,用以帮助项目管理者分析所需过程信息。PSM相对于实施的技术细节,更注重度量概念模型。PSM是一种针对软件组织所特有技术和商业目标的信息驱动软件度量过程。它以组织具体信息需要为度量的出发点,以度量结果为信息产品,构建了一个具有实用性和特定适应性的度量过程。

ISO/IEC JTC1推出的ISO/IEC 25000系列《系统与软件工程——系统与软件质量要求和评价(SQuaRE)》,使软件产品质量管理与评价更趋合理和有效。SQuaRE(ISO/IEC 25000系列)软件质量度量和软件产品评价系列标准是国际标准化组织ISO/IEC近年来在软件工程标准方面的研究重点之一,对于通过量化手段进行软件产品的度量和评价,规范软件产品的质量管理,SQuaRE系列标准提供了一条可以参考的实施途径。SQuaRE系列标准期望用于但不限于软件产品的开发方、需求方和独立的评价方,特别是那些负责定义软件质量需求和负责软件产品评价的人员。

由上述软件度量发展的经验可知,软件度量根据度量对象的不同一般分为三个维度:过程度量、项目度量和产品度量。(1)过程度量。过程度量指对软件开发过程的行为进行目标管理,以形成组织的各种模型,它是控制软件开发过程、持续改善过程评价、提高软件生产率的基础。过程度量理解和控制当前项目的情况和状态,包括项目过程改进;过程度量具有战略性意义,在整个组织范围内进行,具体内容包括成熟度、管理、软件生命周期等。GQIM 过程度量方法如图1-7所示。图1-7 GQIM过程度量方法(2)项目度量。项目度量的关注点是理解和控制当前项目的情况和状态,具有战术性意义。它是对软件开发项目的特定度量,目的是评估项目开发过程的质量,预测项目进度、工作量等,辅助管理者进行质量控制和项目控制。项目度量主要包括对项目的规模、成本、工作量、进度、生产率、风险、客户满意度等的度量。(3)产品度量。偏重于理解和控制当前产品的质量状况,用于对产品质量的预测和控制。产品度量是对软件产品进行评价,在此基础之上进行产品设计、产品制造和产品服务优化。软件产品的度量实质上是软件质量的度量,在ISO/IEC 25000标准中就对系统与软件质量模型做出了明确的定义,质量度量包括功能性、可靠性、易用性、效率性、可维护性、易使用性、可移植性的度量。产品度量方法如图1-8所示。图1-8 产品度量方法1.2.2 软件成本

1.成本的概念

成本是商品经济的价值范畴,是商品价值的组成部分。人们要进行生产经营活动或达到一定的目的,就必须耗费一定的资源,其所耗费资源的货币表现及其对象化称为成本。随着商品经济的不断发展,成本概念的内涵和外延也都处于不断变化发展之中。

成本是生产和销售一定种类与数量产品,用货币计量所耗费资源的经济价值。企业进行产品生产需要消耗生产资料和劳动力,这些消耗在成本中用货币计量,就表现为材料费用、折旧费用、工资费用等。企业的经营活动不仅包括生产,也包括销售活动,因此在销售活动中所发生的费用,也应计入成本。同时,为了管理生产所发生的费用,也应计入成本。此外,为了管理生产经营活动所发生的费用,也具有形成成本的性质。

成本是为取得物质资源所需付出的经济价值。企业为进行生产经营活动,购置各种生产资料或采购商品而支付的价款和费用,就是购置成本或采购成本。随着生产经营活动的不断进行,这些成本就转化为生产成本和销售成本。

成本的构成一般包括:(1)原料、材料、燃料等费用,表现商品生产中已耗费的劳动对象的价值。(2)折旧费用,表现商品生产中已耗费的劳动资料(手段)的价值。(3)工资,表现生产者的必要劳动所创造的价值。

成本的影响在于:成本是补偿生产耗费的尺度,是制订产品价格的基础,是计算企业盈亏的依据,是企业进行决策的依据,是综合反映企业工作业绩的重要指标。借助成本可以反映国家和企业经济活动中“投入”和“产出”的关系。它也是衡量企业生产经营管理水平的一项综合指标,因为它可以反映企业劳动生产率高低,原料和劳动力的消耗状况,设备利用率,生产技术和经营管理水平高低。在产品价格不变的情况下,成本下降,利润就可以提高,企业经济效益就可以增加,相对的社会积累就可以增加。

2.软件成本

软件的成本估算一直以来是比较复杂的,由于软件本身的复杂度,估算人员经验的缺乏及人为错误、估算工具的缺乏等多种原因,导致软件项目的成本估算和实际情况相差较远。因此,软件估算错误已经被列为软件项目失败的四大主要原因之一。

软件成本估算是软件项目成本管理的核心,是确定软件项目成本估算和成本控制的基础及依据,其实质就是通过分析来估算及确定软件成本。软件成本估算不仅包括估算和确定各种开发成本的数额,也包括识别各种软件项目成本的构成因素,估算单位既可以用货币单位表示,也可以用人天、人月、人年等表示,本书运用的单位是人月,主要对软件开发过程中花费的工作量进行估算。软件成本估算有两个最基本的要求:一是估算要有一定的精确性,不够精确的估算只会给软件开发带来危机和灾难;二是估算方法要力求节省劳动力,在估算中花费很多的劳动力显然不是一个很好的方法。

软件成本估算方法多种多样,包括以线性模型、分析模型及复合模型为代表的数学算法模型,也包括类比法、专家判断法、功能点分析法及COCOMO模型法等。但是由于软件成本受到许多不确定因素的影响,使得我们很难构建一个明确的估算模型。此外,软件成本的影响因子中包括很多难以用精确数据来描述的因素,如软件项目的复杂程度、估算人员的技术水平及需求的变更等,这也导致许多估算方法经常会带有一定的主观性。

对于国内来说,之前在一个比较长的时间内软件成本估算并没有引起重视。而在国外,现在应用到软件成本估算的方法已经非常多。赫尔姆和达尔克提出了专家估算德尔菲法(Delphi Method),后来逐渐地被应用到各个领域进行预测和评价。1946年,该方法被兰德公司第一次应用到预测方面。该方法因便于独立思考和估测、计算量和花费少、既经济又合理等优点,被很多学者广泛使用和传播;但是该方法的缺点是没有明确目标,预测结果缺乏科学分析,结果也不够精确。1979年,Allan Albrecht提出了一种软件估算模型即功能点分析法(Function Point Analysis),该方法不需要考虑或者理解软件项目开发过程中使用的是什么语言或是什么开发技术,适用于软件项目的开发初期,或是对软件项目的需求有具体、详细掌握的情况,这样估算比较准确。1981年,勃姆以功能点为基础,提出COCOMO模型,此方法虽然完全适用于存在差异性很大和完全不同的项目,或者历史数据很少的软件项目,但是不能完全精准地估计所有项目的成本,估算准确性相对较低。1989年,Abdel-Hamid 等学者设计了一个估算器,其对项目的成本估算和工作进度估算相对准确,但是其估算值的准确性取决于项目输入的初始值。1994年,Macdachy根据动态技术设计了一个动态模型公式,可以应用到软件项目估算中。随着对软件成本估算的不断研究,各种方法也在不断创新和改进。由于影响软件项目成本的因素特别多,而且很多因素具有不确定性,随着软件项目的不断开发,这些因素也在不断变化,特别是人员因素和环境因素,如人员会随着项目开发过程而出现变动等。软件项目的不确定性和变化性提升了软件成本估算的复杂度和困难度,导致软件成本估算的结果不准确,这样的结果对于软件开发的投资人是不可接受和不信任的。另外,在影响软件成本的众多因素中,有许多因素不能量化和不能准确地用数据表示其具体特性,这也是目前很多估算方法都是以主观的态度对其做出评价的原因,造成得到的结果具有主观性。现在国外学者研究与应用的最热门、流行的估算方法是用机器学习方法的思想,来实现软件成本估算,Briand.L以决策树理论为基础,提出了一种属性约简法,从中找到最优解,即最优集约简法。最开始该方法用来分析软件项目过程的各种数据,后来将其应用于软件成本估算,实验证明该方法能有效、准确地进行软件成本估算。该方法是非参数方法,这也是其最大的优势,能够较好地适应不同的研究对象。基于机器学习的方法还包括神经网络技术、基于案例推理技术及分类预测技术等。

软件成本估算在软件项目开发过程中是非常重要的任务,它的目标在于合理、有效地进行成本估算,主要是对软件项目的规模(工作量)和进度等进行估算,得到一个项目总成本,然后对软件项目开发

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载