事后监理中的软件开发工作量评估模型研究
摘要:软件开发工作量受业务、人员、技术、环境、策略等众多因素制约,很难精确度量。由于缺失大量的过程信息,事后监理阶段对工作量的评估,更是难以把握。以彩票运营管理系统为分析对象,在充分了解已有系统基本情况的基础上,综合运用工作量算法模型和专家评审法,提出了一种新的工作量事后评估模型。实践表明,该模型既提高了评估的灵活性,又能有效修正专家的主观偏差,适合于事后监理。 关键词:事后监理;软件度量;COCOMO;系统架构;彩票管理 中图分类号:TP303文献标识码:A文章编号文章编号:1672-7800(2013)012-0035-03 作者简介:匡晓红(1973-),女,硕士,湖南警察学院副教授,研究方向为数据库技术及信息安全;汤丹(1973-),男,硕士,湖南警察学院教授,研究方向为电子政务即信息安全。 1背景 在信息系统监理实践中,事后监理是指在项目主体工程完成后,监理单位进入的监理模式,该模式是对信息系统工程进行事后评价和评估。事后评估是在项目建设的后期,一般由监理机构、第三方测评机构或者审计部门发起,旨在对软件开发的实际工作量进行评估和核定。随着社会经济的发展,现在的软件项目越来越庞大,软件项目的时空范围在不断延伸,尤其在大型信息化建设项目中,投入资金大、建设周期长,跨行业、跨地区、跨部门的软件项目层出不穷。软件项目的主体也不只是建设单位和开发商(承建方),还有咨询机构、监理机构、评测机构、审计部门等参与方,有些大型软件项目甚至是由多家建设单位共同组织和多个承建单位联合建设,项目管理的难度也越来越大。正是在这样的背景下,软件开发工作量事后评估的需求也在逐渐增长,尤其在事后监理、项目验收、项目审计、第三方软件测评等应用场景。在事后监理模式中,监理单位对项目开发的过程的把握很难做到全面,对工作量的评价也容易出现偏差。本文结合彩票运营管理系统的事后监理,提出了一种新的软件开发工作量事后评估模型。 2工作量事后评估模型 软件开发项目的工作量估算技术一般分为三类:基于专家判断的技术、基于算法模型的技术和面向学习的技术。不同的估算技术各有自己的优点和局限性,没有一种估算技术能适用于所有开发环境,并且软件开发方法和技术的更新速度也对所有这些估算技术提出了挑战。尤其在事后监理模式下,监理单位对开发工作量的评估应根据具体的项目特征和可获得的信息来选择合适的估算技术,并针对当前项目情况对使用的估算模型加以调整,依据不同技术的特点组合不同的估算技术进行估算,以提高估算准确性[1]。此外,在估算项目工作量时要充分考虑项目前期阶段的工作量,并建立软件项目工作量标准库。 基于算法模型和基于专家判断的估算技术是发展较成熟且应用较普遍的估算技术。基于算法模型的估算方法有很多,如COCOMO[2]、SLIM[3]、和PRICE-S[4]等,其中COCOMO是被广泛接受和使用的估算模型。专家评估技术在缺少量化的、历史数据的情况下非常有效,也是至今为止使用最普遍的软件项目估算技术,但是这种方法主要取决于评估人的经验,带有很大主观性[5]。 本项目提出了一种新的基于算法模型法和专家评审法的工作量事后评估模型,主要思想是根据模型法和专家法进行修正和综合。 由于考虑估算偏差,专家评审法和算法模型法得出的工作量都是处于某一个区间,该算法有两种情况,如图1所示。 (1) 当专家评审法和算法模型法两块工作量区间有重叠时,则取二者的重叠部分作为工作量的评价,如图1(b)所示:假设专家评审法估算出的工作量为区间[A,B],算法模型法估算出的工作量为区间[C,D],则将区间[B,C]作为修正后的核定工作量。 (2) 当专家评审法和算法模型法两块工作量区间无重叠时,则取两者的中间区间,如图1(a)所示。假设专家评审法估算出的工作量为区间[A,B],算法模型法估算出的工作量为区间[C,D],则将区间[B,C]作为修正后的核定工作量。 3开发工作量事后监理评估要点 影响开发工作量的因素众多,如:业务背景、用户需求、系统架构、软件功能、开发团队、技术路线、开发环境、部署环境、系统数据量等。在事后评估阶段,如果不能较好地综合分析这些因素,都会让一个待评估的系统工作量与实际的工程出现较大的偏差。因此对软件开发工作量进行事后评估,一定要对项目的基本情况进行调研和核实。 3.1系统基本模块及功能点 系统实现的功能最终是由用户需求决定的,系统有多少个模块?实现了多少功能点?采用什么样的技术路线?技术难度如何?这些都是估算系统工作量要考虑的主要因素。尤其在事后评估阶段,系统需求调研的过程和细节已经很难全面了解,只能结合需求规格说明书将系统实际开发的功能作为主要的评估点。待评估的系统是一个省级彩票运营管理系统,包括:渠道管理、销量管理、资产管理、市场管理、内部公文管理等共18个模块,系统功能点共300个,属中等规模应用系统。 3.2系统架构 系统架构当然也与系统开发工作量息息相关,彩票运营管理系统采用典型的多层架构,分为数据层、数据访问层、业务逻辑层和表示层4个层次。在工作量评估过程中,主要考虑:系统架构合理性、各层之间的偶合度、支撑组件的通用性、应用组件的安全性和可管理性等主要因素。 3.3数据量情况 系统采用Oracle和SQL Server两种数据库,其中Oracle用来存放销量数据、用户数据、流程数据等业务数据,SQL Server 用来存放工作流过程实例化数据及考勤机数据等。 Oracle 数据库在线数据库约为 300G,存档/备份数据库 2T;在线数据约为40亿条。日均系统新增数据量为350万条左右,其中原始销量数据200万条,统计/汇总数据120万条,业务逻辑数据10万条,日志记录20万条。系统数据量较大。 3.4程序代码行数据 软件开发公司提供的代码行数据包括:业务逻辑层、界面展示层、数据访问层、存储过程和函数源代码,合计3 115 411行。但以上代码量数据包括软件开发公司2007年以来承建的体育彩票管理中心数个应用系统的代码量总和,我们以业务逻辑层为主体,4个人的开发团队,10个月的开发周期,并且本项目采用了第三方控件,且这其中有大量的自动生成代码,再根据经验值估算,代码行认定为40 000行。 3.5开发团队及研发进程 开发团队也是影响工作量的重要因素,同样的开发任务,对不同层次的开发人员工作量是完全不一样的。本系统开发团队由1名系统分析师、2高级程序员、1名程序员、1名测试人员组成,核心开发人员对业务过程十分熟悉,具有丰富的项目开发和管理经验。这5个人的开发团队,进行了12个月的开发工作,加上前期12个月的数据采集及加工预处理。 4工作量评估 在事后评估中,除了对系统基本情况进行调研,搜集一手的工程资料之外,还要将完备的历史数据与系统的分析技术结合起来,就能够提供具有可接受风险的估算,提高估算的准确度。目前,我们的评估人员已经收集了近5年来50余个信息化项目的工作量数据,形成了完整的评价体系和工作量历史数据库,并有一支专业的评估队伍。下面将从评估方法、人月标准等方面入手,结合事后评估模型对本项目工作量进行评估。 4.1模型法