1 引言
在电力系统领域内,随着电力公司业务的不断扩大,软件资产数量及项目工程不断的增多,每一个软件项目都必须经历需求分析﹑系统设计﹑编码实现﹑集成测试﹑部署﹑维护和支持等过程,对软件的管理贯穿软件的生命周期。随着软件复用的概念在不断完善,面向对象技术和软件复用技术的发展,软件构件技术应运而生,如何实现软件生命周期内的资产复用以及对当前庞大的电力领域内的软件进行构件标准化,以达到构件复用效果,对当前的电力企业软件资产管理方法提出了新的功能需求。
2 现状分析
现今,在电力系统软件的设计﹑开发及后期维护过程中存在几个问题。
一是在软件开发的过程中将生成各种各样的文档﹑源程序﹑可执行代码﹑支持库,这些工作产品的特点是可重用性以及在开发过程中会出现频繁的变更。如何在开发过程中使其高效的存放和便于开发人员合作开发以及提高其复用性就成为了一个亟待解决的问题。
二是电力系统初级版本软件存在不稳定﹑缺乏全面的技术支持,以及集中于单用户等问题,如何对现有系统进行完善,并及时通知用户更新信息;以及利用现有资源来提高生产力和性能,支持新的业务机遇,是当前面临的问题之一。
三是对于反复完善的软件版本,在用到电力工程部署中是会出现版本不统一﹑不兼容问题,如何能够做到版本兼容统一,要求提供统一的运行版本控制对项目进行支持。
四是现有的信息平台系统规模越来越大﹑内部组织越来越复杂,严重制约了业务应用分解开发与实施。如业务变更需加载新模块支持业务,如何利用已有的构件资源实现快速查找﹑分组与重新组装,提高软件重用性,成为电力软件公司的加快产业信息化的关键问题。
3 软件资产管理实现方法
针对以上电网领域内存在的软件问题,要提高软件的生产率及质量,实现构件的复用,必须要在基于构件的软件开发技术上在软件生命周期内的各环节中对软构件产品进行管理与控制。
3.1 SVN系统
SVN 全称Subversion,主要针对部门开发人员使用,功能是方便开发人员对代码﹑文档等的重复修改,是目前开发工程中使用较多的开源的版本控制工具。SVN 对版本的控制,是在一台服务器上建立SVN版本库,库中存放许多不同的项目资源,由配置管理员根据项目的配置管理计划,为项目组成人员分配相应的访问权限。SVN通过URL来表示版本库中的资源。SVN为协同开发,即接受多个用户提交的不同版本的源码,提供两种解决方案,一种我们称之为:锁定- 修改- 解锁方案,另一种为:拷贝- 修改- 合并方案。在锁定-修改-解锁方案中,版本控制工具在同一时间只允许一个程序员锁定并修改同一文件,只有当这个程序员提交他的版本后才能解锁其他程序员才可以修改该文件,这个方案操作简便但产生了工作的排队等待问题。而在拷贝-修改- 合并方案中,允许同一时间有多个程序员修改同一文件,由最后提交的程序员决定如何解决和先提交版本之间的冲突,这样很好的解决了锁定- 修改- 解锁方案带来的工作排队等待的问题。
SVN 的特点是针对代码编写人员提供便利。SVN能很好的解决项目开发人员的频繁修改代码,版本混乱等问题。实现多重版本在共同开发中的管理。SVN 工作原理图如图1所示。
图1 SVN工作原理图
3.2 PLM系统
PLM(Product Lifecycle Management)是产品生命周期管理,对产品从概念设计﹑详细设计﹑生产﹑投运﹑维护和后期服务直到产品退出市场并消亡的完整生命周期的管理。是对PDM的扩充,纵向涵盖需求到后期服务,横向涵盖合作伙伴﹑客户等。
PLM管理人员通过项目管理系统(TC Project)制订计划,各项具体任务通过接口传递到数据管理系统(TCEntERPrise),具体的任务承担人员在数据管理系统中接受任务,当一个项目进行到测试阶段,或可提交给工程阶段时,开发人员将已自测过的程序按照PLM系统要求进行提交,并提交相应的文档﹑测试代码﹑版本信息等工作产品,由公司特定中试人员对代码进行测试,测试过程中若出现问题则将代码返回开发人员进行修改,修改后代码重新进入PLM系统重新进行测试,直至最后测试通过,项目管理系统中的任务将自动更新任务已完成,标示当前构件版本信息,并通知相关人员。PLM 测试阶段工作流程图如图2所示。
图2 PLM工作流程图
PLM 系统在公司内部主要针对中试部门和科研管理者使用。PLM不仅包含软件系统,还包括硬件类,针对软硬件及文档类进行了详细的结构定义。
3.3 OCP系统
基于构件的软件开发是一条有效的﹑实际的软件复用的实现途径,且基于构件开发的基础是有一个合理而高效的可复用构件管理系统,OCP开放构件管理平台(Open Component Platform)的提出即将其定义为面向电网领域可复用软构件库管理系统。主要业务是管理﹑查询及发布电力领域内的构件。OCP系统基于Web技术能够快速的查找﹑组装构件系统,并且当技术和用户需求发生变化时可以进行反馈及修改。此方法更加易于构件发布﹑构件查询和进行构件的复用组装。如图3所示为OCP系统功能结构图。
图3 OCP系统功能结构图
3.3.1 构件概念
OCP 构件库中不仅存储构件,还存储构件应用系统。构件和构件应用系统概念:构件是用于复用的各个软件生命阶段的工作产品,包括需求构件﹑分析构件﹑源代码等。构件应用系统是具有某种关联的构件和子构件系统的集合,如可以把密切关联﹑经常一同复用以实现某个常用功能的构件组织成为一个构件应用系统,它是构件库存储的又一基本单位。构件应用系统自身称为父构件系统,作为其构成元素的构件或构件应用系统称为子构件或子构件系统。
3.3.2 OCP 用户管理
对构件库管理流程进行分析,明确用户对构件管理库操作权限的要求,设计OCP系统用户的角色权限。OCP系统用户示意图如图4 所示。软件资产管理者负责对OCP系统用户进行权限管理,赋予不同领域内负责人及相关人员的使用权限,并进行构件的分类及相应的版本管理;基础技术开发者提供基础构件入库,并对其进行构建属性描述及维护,基础技术开发者是构件库核心内容提供者; 应用产品开发者和第三方开发者可基于构件库进行构件查找﹑信息查看﹑组装构件并可反馈构件使用信息给构件提供者,进行基于构件的软件二次开发。
3.3.3 构件描述
构件的分类和储存是构件检索的关键,传统的方法难以精确查找构件资源,本文引入本体的概念对构件进行描述和检索。OCP 系统使用OWL 本体语言进行构件描述。OWL 总结了RDF﹑XML等语言基础上提出的,它继承了这些语言的开发经验,添加了更多新的逻辑关系﹑属性约束,使其具有更丰富的语义和逻辑表达能力。
构件描述的刻面主要涉及类有:构件基本信息﹑构件环境信息﹑构件分类信息﹑构件功能信息等。下面以描述构件基本信息为例,说明如何用OWL语言来对构件进行描述。
构件基本信息(CBlnfo)类的定义:
构件基本信息的子类构件标识(CBlnfoId)及构件作者(CBlnfoAuthor)的定义:
3.3.4构件检索方法
本体中的概念为语义的基本单位,每个概念通过概念之间的属性和关系来表达,语义相似度用以衡量语义的相似程度,语义相似度满足一定域值的称为相关概念。在检索时,相似度反映与用户查询在语义上的匹配程度,语义相似度越高,说明本体库中的数据与用户查询请求越接近,当相似度高于某个阀值时,说明本体库中的数据符合用户查询请求,当相似度低于某个阀值时,说明本体库中的数据与用户查询无关联,不能作为结果集返回给用户。两个概念之间的相似度定义为:
其中,x和y 表示本体中的两个概念,n 表示X 和y在本体中所具有的最大深度,θ 表示权重,我们可以暂时简单的取θi=1/n,δi (x,y)的取值定义为:
由此可知,Sim(x,y)返回[0,1]间的数来表示两个概念间的语义相似度。同样,我们也可以表示两个集合间的语义相似度,设两个集合分别为X 和Y,X= {x1,x2,...,xn} ,Y={y1,y2,...,yn},则两个集合间的语义相似度为:
在查询扩展时,通过将用户的查询请求与本体进行语义匹配,来扩展用户的查询条件,给出用户请求的隐性信息。
4 结束语
随着电网领域软件产业的不断发展,企业积累了大量的软件资产,通过SVN﹑PLM 及OCP 相结合的方法实现软件在生命周期内的管理及复用,包括开发人员对代码的重复利用及修改,中试人员对代码的测试及后期工程人员对项目的部署及二次完善开发,提高了软件开发的质量以及在各个环节的复用率。优化公司系统软件产品开发过程和软件资产构件化管理。节省人力并为公司带来了不可估量的经济效益。形成软件开发周期内的生态循环,实现面向电网领域复用的软构件系统开发,如图6所示。
图6 软件资产管理系统图
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:电力企业软件资产阶梯管理的研究与实现