低成本软件研发理论与开发实践

发表时间:2020/11/5   来源:《科学与技术》2020年28卷第19期   作者:崔玉杰 孙大伟
[导读] 低油价可能会长期存在,企业在降本增效的同时,信息建设投入也在减少,找寻一种低成本软件研发模式是摆在我们面前的现实问题
    崔玉杰 孙大伟    
        (中国石油天然气股份有限公司吉林油田分公司信息中心, ,吉林省,松原市 138000)
        摘 要:低油价可能会长期存在,企业在降本增效的同时,信息建设投入也在减少,找寻一种低成本软件研发模式是摆在我们面前的现实问题,按照软件造价评估公式,软件研发的主要成本是直接人力成本,如何缩短开发人员的研发周期是压缩软件造价的关键。传统的软件开发工作主要围绕着功能模块和后台权限管理、流程管理等工作开展。这些工作对于开发人员来讲都是基础逻辑,是一种重复性工作。通过大量的引用外部接口文件(WEBAPI)和结合敏捷开发框架,开发时间被大大缩短,平常一年的开发工作可能会在几个月内完成。本文作者长期从事油田信息建设工作,通过项目实践,让这个低成本的开发理论落地。
        
        关键词:WEBAPI; 敏捷开发框架
 
        Theory and practice of low-cost software development
        Cui YuJie
        (PetroChina Co Ltd Jilin Oil Field Branch Information Center, the songyuan City of jilin Province, 138000)
        Abstract:Low oil price may exist for a long time. While enterprises are reducing cost and increasing efficiency, investment in information construction is also decreasing. Looking for a low-cost software R & D model is a realistic problem in front of us. According to the software cost evaluation formula, the main cost of software development is direct human cost. How to shorten the R & D cycle of developers is the key to reduce software cost. The traditional software development work mainly revolves around the function module and background authority management, process management and so on. These works are basic logic and repetitive work for developers. Through a large number of references to external interface documents (webapi) and cohesive soft agile development framework, the development time is greatly shortened, and the development work in a year may be completed in a few months. The author of this paper has been engaged in Oilfield Information Construction for a long time. Through project practice, this low-cost development theory is put into practice.
        Keywords: WEBAPI; Agile development framework
        
        
引言
        一个软件的预算价格由开发人员的直接人力成本+直接非人力成本构成,直接人力成本等于平均人月费率*工作量,工作量由软件开发的内部逻辑文件和外部接口文件形成的预估功能点组成。功能点越多,成本越高。如何减少这些功能点的开发工作量哪?减少内部逻辑文件的开发时间,加大外部接口文件的引入就成了低成本软件开发的关键。

        图1   软件预算价格构成
        外部接口文件的引入并不简单。对于油气田来说,目前能够被引入的接口文件很少,这个和油气田企业的软件项目开发管理方式有关,一个系统往往为了实现特定的功能或者为特定的部门和人员服务的,功能的针对性很强,系统也相对独立。信息系统建设的投资模式一直围绕着项目投资开展,开发工作基本都是从0到1的孤岛式建设方式。系统数据并不对外提供接口服务,在其他系统需要这个系统的功能或者数据时就需要重复开发建设,无形增加了开发的工作量,也不利于数据的流转。随着从国家层面的大数据建设方兴未艾,如何破除旧有的软件开发模式,用大数据、大共享的逻辑来梳理新的建设开发逻辑,有必要对油气田企业的数据开放模型进行一次有益的探讨。
        内部逻辑文件的开发除了算法逻辑基本都是常规的权限管理,数据的增删改查逻辑搭建。对于开发人员来说,工作内容大同小异,具有很大的重复性,却耗费了大量的开发时间。敏捷开发让这些重复繁重的工作变得简单。敏捷开发通过框架内置工作流、 向导式智能开发组件、即时通讯组件、APP开发组件、微信组件、通用权限等一系列组件,软件开发人员通过一系列配置就可以快速构建高质量的信息系统。结合MVC的开发模式解决了软件开发的分工,让更多的人可以分工合作,从而使开发工作得到质的飞跃。
        本文结合数据开放模式的探讨和敏捷开发框架,尝试构建全新的数据共享开发逻辑,通过大量的引入外部接口文件,降低直接人力成本,通过引入敏捷开发框架,让前后端的工作变得很轻松,并通过项目实践,诠释这个理论的作用和意义。
数据开放模式的探讨
        近些年“大数据”概念的兴盛,“开放数据”(open data)随之受到政府和企业的重视并纷纷纳入议事日程。有三种开放方式,完全公开、机器可抓取,授权公开。无论哪种开放的方式,组织机构的数据应该可实现WEB连接;数据可以基于HTTP协议进行传输;制约数据连接的是管理方式和对数据资产的认识,数据作为资产在网络上实现价值传递,让数据能够更多的被检索到,也是标准规范的传递。    
        数据和成果这种无形资产管理对于一个企业来说是一个全新的领域。由于无法衡量对应的价值和保密等因素,这些数据和成果长期保留在系统里,数据库里,档案馆里,或者研究人员的电脑里。更多的成果在内部评奖之后就束之高阁了。而在BAT这样的企业中,通过收购数据和用户资产,来实现快速整合和扩张已经成为趋势。搭建开放的共享平台,在大数据,大共享的时代,打破孤岛式的系统开发模式,让数据跨部门、跨区域流转起来,为各个系统提供服务,避免了重复建设,重复投资,重复分析。数据的价值实现也能反哺系统投资,从而优化服务质量,提高系统的生命周期。
        开放各组织机构数据接口是数据唯一性、标准化管理的前提。接口技术结合互联网让系统的触角可以延伸到更远的地方,WEBSERVICE、WEBAPI的技术应用,让企业生产生活的基本信息有了统一的发布接口,同时把数据的标准和规范下达到第三方系统。举例来说,日常工作过程中,很多系统经常需要大量采集个人的基本信息,而人事部门应该有完整的信息,由于系统接口封闭,第三方系统需要这些信息的时候,只能重复采集,或者连接底层数据库,有可能造成数据的不一致,形成多版本数据,数据的价值和标准规范也无法得到体现和传播。腾讯的微信用户认证就是一个很好的例子,第三方的程序不需要采集过多的用户信息,就可以确认人员身份,而腾讯只是开放了一个API接口。
        通过以上的分析,打通数据孤岛,提高数据质量,开放数据接口是大数据分析的基本前提。我们尝试着梳理出一张数据的流程图,如图1。

        图2  API数据流程图
        数据标准建设在图2中的作用不言而喻,它是连接所有数据接口和整合分析的关键。对于油气田企业来说,井实体标准化就是数据标准建设的一部分。统一井号命名,井ID命名无论对于统建系统和自建系统来说都是极其关键步骤,也是实现大数据分析的关键。
        经过标准化生成出来的API接口如何让用户检索到,在未来的项目开发中被引用哪?那么,就需要有一个统一的发布平台,APIstore就是这样的平台,承载了大量专业应用系统的API集散中心,提供免费或者付费服务,是一个连接开发者、服务商的一站式分发和检索平台。也是实现数据资产价值转化的平台。通过一个统一平台发布各组织机构、各专业完整的数据接口,便于其他待建系统的开发人员检索,为应用系统提供数据,也可以给不同地区公司提供检索平台,避免重复开发。从而实现数据资产的转移和重用,让数据资产产生价值,在传播数据的同时,也传播了标准和规范。数据中心通过该平台整合数据,引用到中心主库,为大数据分析提供服务,保证数据的源头唯一性,数据完整性的统一。
敏捷开发框架
        敏捷开发通过框架内置工作流、 向导式智能开发组件、即时通讯组件、APP开发组件、微信组件、通用权限等一系列组件,软件开发人员通过一系列配置就可以快速构建高质量的信息系统。让开发人员重复繁重的工作变得简单。
        敏捷开发通过代码生成器的快速开发模板,为用户选中的单个数据表快速生成代码,半分钟完成一个功能。
        

        图4  快速开发模板

        可视化编辑表单页面和查询页面、导航树形、通过发布功能将生成好的功能代码挂到菜单上。编译过代码以后直接点击菜单项就可以使用开发好的功能了。基础的开发就完成了,可以根据需要到解决方案中修改生成好的源代码。

        图5   代码生成器自动生成的代码
        用户权限管理也很简单,在敏捷开发框架中可以对菜单、按钮、数据进行授权操作。菜单、按钮需要先在系统中注册。自定义表单、代码生成器生成的功能会自动将菜单和按钮注册到系统中来。
        可以通过用户管理、角色管理和菜单管理对用户进行添加,角色分配,并把相关的菜单访问权限授予角色,把角色授权给用户。
        

        图6 用户功能授权
        敏捷开发框架也可以对数据列表进行管理。只要将数据列表的路由注册到数据授权功能中的“接口管理”就可以了。接口管理可以自定义管理哪些数据源。在 MVC 的后台代码中,一般是通过控制器中的Action 对外提供接口,调用接口就可以得到指定的数据列表。
        通过简单的配置就可以实现流程管理是敏捷开发的又一个特色。

        至此,敏捷开发框架对于开发人员来说已经搭建了7成的基础架构,只要根绝业务需求调整部分代码就可以了,整个过程只需要业务娴熟就可以了,开发人员的时间被大大缩短。
井实体软件开发项目实践
        研发工作利用力软敏捷开发框架和.net core技术来搭建一套井实体API接口,并对外提供服务。通过这套管理工具的研发,建立井实体的唯一身份确认,实现井名等基础信息注册认证、井ID按照命名规范自动生成、统一发布井实体的WEBAPI接口。本项目在图2中充当的是数据标准的角色,通过本项目的实施,规范所有管理机关和数据源点源点单位的井实体数据,从而保证数据的唯一性、完整性和一致性,让数据搜索和整合分析成为可能,为各专业数据正常化提供必备的基本实体数据支持,为大数据中心建设和数据共享应用奠定基础。
        系统分成三层架构,基础数据层、井实体管理工具层和井实体数据库。

   功能包括五个模块:井基本实体管理模块、井基本信息同步注册模块、井基本实体API模块、数据查询和统计模块、用户及权限管理模块。

        井实体的数据来源于设计审批系统,并监测钻井生产数据和录井数据,已经开钻作为实体产生的充分必要条件,通过读取设计审批系统的设计坐标,录井系统的复测坐标,钻井生产数据的开钻时间和完钻时间来完善基础数据表。管理员通过登录界面进入系统,对申请进入系统的实体数据进行审批,对实体数据可以进行增删改查。
        入库的实体数据可以根据用户需求对外开放API接口,并发布到APIstore平台,提供给开发者服务。目前系统已经为A2系统的实体提供了服务,随着实体API接口的普及,未来会有更多的接口文档被发布,被引用,低成本的大共享的软件开发模式逐渐拉开大幕。


结语:
        井实体管理工具的研发实践,我们通过力软敏捷开放框架快速的实现了项目的研发工作,并通过API接口快速的对外提供服务。为低成本的软件研发无论从理论层面和技术层面都得到了验证。在井实体标准化管理的前提下,数据的一致性得到了保证,数据从孤岛中的围墙走出,为其他系统服务。
        低成本软件研发核心逻辑就是大数据共享。大数据背景下信息化建设的目的就是为了实现数据的改革开放。开放的系统架构是保证组织机构数据开放的前提,技术只是实现先进意识的工具,大数据的构建的前提像空间站的建设,无论你的太空舱是哪国建设的,只要接口是按照标准建设的,就能够实现成功对接,就能够共同实现探索太空的目的。先进的永远不是技术本身,而是组织技术实现目的的能力。
        当然,大数据的建设不是一蹴而就的,数据从封闭到开放的观念的转变不是一朝一夕的事,开放数据建设规划也应该有条不紊的展开,在国家层面,行业领域,逐步消除壁垒,形成数据有价值的流转,数据从支流汇成数据胡泊,乃至数据的海洋。
         
参考文献
[1]大数据的本质,(百度百科),2019
[2]刘永峰 三分钟看懂十年云计算:从服务到公共资源的演化之路
[3]刘涛 国内云建设普遍缺失的一环:云管理平台
[4]Ben Linders 越来越多的系统向云上迁移,软件工程技术的未来到底在哪里?
[5]陈皓 云计算,说到底拼的还是运维
[6]黄东旭「企业上云」系列之开源数据库的现状

作者简介: 崔玉杰,1975年,男,中国石油天然气股份有限公司吉林油田分公司信息中心,通讯地址:吉林油田勘探开发研究院信息中心(后楼)邮编:138000 手机:13364385501办公电话:0438-6227459 Email:cuiyj-jl@petrochina.com.cn。
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: