论文-论基于DSSA的软件架构设计和应用

摘要

介绍项目背景,项目主要功能,项目已实现并正常运行

去年三月份,我所在公司启动国网电力用户用电信息采集系统,我被任命为项目负责人。国网电力用户用电信息采集系统是国家电网坚强智能电网建设的一部分。由于公司之前为南网(主要是广东省)开发过类似用电信息采集系统,且公司准备在电力行业做强做大,我提出采用DSSA技术来研发国用信息。得到公司领导层的一致赞同。

由于项目功能实现上具有明显的阶段性,我决定采用演化的方式来实现DSSA以及完成应用产品的开发。一是对原有系统、文档以及国用电信息系统功能规范进行分析,完成DSSA;二十对原有系统进行部件提取,作为核心资源公共部件;三是加强对核心资源的管理,方便研发工程师查找部件以及扩展部件。

经过近一年的努力,终于完成的公司用电信息采集系统核心资源的建立,也完成的国网电力用户用电信息采集系统项目。

正文

详细说明项目背景

去年三月份,我所在的公司启动国网电力用户用电信息采集项目,我被任命为负责人。国网电力用户用电信息采集系统是国家电网公司坚定智能电网建设的一部分。公司之前开发过广东电网公司计量营销一体化系统,类似于用电信息采集系统。

老的系统或者模式的痛点

我对广东电网公司计量营销一体化系统的功能规范和国网电力用户用电信息采集系统的功能规范进行分析,发现除了系统内各自的通讯协议的不同以外,其他的功能需求大体上相同。整个采集系统都是分三层实现,主站层,采集终端层和电能表层。由于电能表已经规范化了,有专门的表即生产厂家,这一层不需要投入资源进行研发。从公司目前的状况来看,主站投入的研发工作量比较少,一时主站的开发中模块化做的比较好;二十用户的需求基本一致。国网用电信息采集系统仅需要在广东电网公司计量营销一体化系统主站进行界面调整和支持国网信息采集系统协议即可达到要求。

实地说明项目情况,项目启动,个人在项目中的作用,采用的技术要结合论点

根据之前的开发经验,用电信息采集系统开发的重点是采集终端的开发。因为采集终端需要安装到现场,而现场的用电环境各异,能够到达的远程信道也不同。采集终端可维护性低或可靠性低,则会产生大量的维护工作,影响公司品牌及利润。根据用电信息采集系统的要求,采集终端分为集中抄表终端、专变采集终端和公变采集终端。广东电网公司计量营销一体化系统的采集终端大体上也分为上述三类;低压采抄终端、负荷管理终端、配变检测终端。通过对采集终端的功能要求进行分析,可以看出他们归属于一个产品家族。我在项目组启动会议上采用 DSSA 技术进行采集终端产品的研发,建立公司用电信息采集系统核心资源,同时将计量营销一体化的采集终端也归结到产品家族中。

介绍论点 DSSA

总所周知,DSSA (特定领域软件架构)就是在一个特定的问题领域中支持一组应用的开发,这些应用形成产品家族。DSSA是软件重用的一种手段,他由领域模型、参考需求、参考架构组成重用元素。

介绍当前项目模块

用电信息采集系统各终端基本需求都是对外接的电能表或者测量点的读数进行采集,稍做处理后通过 GPRS/CDMA 信道远程传输给采集系统主站端。采集终端的功能模块一般包括测量点的采集模块,表计规约模块,现场总线模块, PPP 拨号模块,主站命令模块,本地维护模块,程序升级模块,数据存储模块,交流采样模块,符合控制模块等等。

介绍项目的特殊性,符合 DSSA 的特定领域的特点

由于采集终端在现场使用的特殊性,它的非功能性要求主要集中在可靠性,可修改性和易用性。现场用电环境复杂,信道各异,要求采集终端具有高可靠性。由于市场上的电能表支持的规约各异以及现场总线发展的快速,要求采集终端可拓展性强,能快速支持新的表计规约和现场总线,且支持远程升级操作。由于在现场施工时多是有工程队进行安装,工程队的人员素质高低不齐,要求采集终端在本地操作具有一点的智能化,且要求调试简单。

前提总结

根据上述分析,采集终端软件架构采用分层设计比较合适。分层设计的软件可修改性和可扩展性比较好,由于分层开发,将关注点分离到各层,将系统的复杂度分到各个层中,相应的可靠性也可以得到提高。

选择开发方式

在用电信息采集系统研发中,我决定采用演化方式进行开发。

讲解实际开发的过程

首先对原有系统、文档以及国网用电信息系统功能规范进行分析,完成DSSA。在项目启始阶段,我对计量营销一体化系统及用户需求文档及设计文档进行分析,将用户需求用 EXCEL 表格列出来。然后在对国网用电信息采集系统的功能规范进行分析,用同样的方式列出用户需求,需求对比后发现他们之间的功能要求大体上是一样的。单由于通信协议的不同会导致一些功能上实现存在一定的差异。如主从终端的链接功能,用电信息采集系统采用一条命令完成主从终端的所有通信,而计量营销一体化系统分成建链、传输、端链三条命令来实现。于是我决定将基础业务模块做成通用的业务模块,根据不同的参数来初始化模块,或各具体产品自己适应模块。按照这个需求,我对核心资源进行分层设计。

系统分层以及分层的介绍

总体上,核心资源分成三层,由低到高依次是:基础资源层,基础业务层,扩展业务层。基础资源层包括多进程框架,GUI 系统,系统API和驱动封装,虚拟信道模块等等。由于采集终端的系统是 LINUX, 而且通讯口资源比较多,采用一个进程管理一个通讯口,单一管理便于维护,因此提供多进程框架,方便应用开发时的进程增加。对系统的 API 和驱动进行封装,方便以后的代码的移植。基础业务层主要包括用电信息采集系统的各个基础功能模块,有现场总线模块、表计规约模块、测量点采集模块、交流采样模块、负荷控制模块等等。扩展业务层主要对基础业务层中的各个模块进行参数化和适配,以适应本系统的需要。根据目前的情况,拓展业务层主要有计量营销一体化系统部件包和国网用电信息采集系统的部件包。

遇到耦合性强的问题,进行模块间的解耦,遇到问题,解决问题,三至五段

其次对原有系统进行部件提取,做为核心资源的公共部件。计量营销一体化系统的采集终端在研发时由于没有采用组件开发技术,各功能模块和应用层耦合较强,在提取公共部件的时候需要对应用层解耦。各个具体的功能都有相应的控制参数,而控制参数可以由主站命令模块进行读写,将控制参数管理模块做成中介者模式,很好的实现饿了各功能模块的解耦。如 PPP 拨号模块,和应用层的拨号参数读写命令耦合在一起,通过参数管理模块将主站命令模块和 PPP 拨号模块进行解耦。

在对计量营销一体化系统的采集终端进行部件提取的过程中,每完成一个部件的提取,则对原采集终端软件进行重构,并完成集成测试和确认测试。这样可以始终端保持原采集终端软件系统可行,成为第一个验证部件的产品。

最后加强对核心资源的管理,方便研发工程师查找部件及扩展部件,到了开发的后期,核心资源库的公共组件慢慢多起来了,同事由于在扩展业务层对很多基础部件进行了参数化和功能扩展,很多部件在标识和功能上都差异不大,出现了有点混淆的问题,为了更好的管理,我建立了 WIKI 服务器,采用 WIKI 服务器进行组件管理,在 WIKI 服务器上对组件的标识、功能、接口及与相关组件的差别等等进行了描述。研发工程师输入相关的关键字就能找到匹配的组件及每个组件详细的说明,方便研发工程师使用。

总结

随着用电信息采集系统核心资源库的建立,国用电信息采集系统项目功能也逐渐完善起来。采集终端软件系统在今年8月份通过了国家电网科学研究院的全功能测试,这对全体项目组成员是一个振奋人心的好消息,说明我们的不写努力得到了认可。

  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2021 翟天野

请我喝杯咖啡吧~