通过一段时间的努力,能效协议软件终于完成了。相较于大型软件来说,软件规模并不大,但是却包含了软件开发一个完整的过程,从需求分析、系统分析、架构设计、到详细设计及实现 。俗话说“麻雀虽小,五脏俱全”,并且所有过程都是自己一个人完成的。通过这个“具体而微”的过程,可以领略到软件开发的整个流程。扩而充之,就是开发大型系统的方法、过程。是以,记之。
一、需求分析
实现能效协议的全部功能,包括参数设置、查询,数据召测,透明转发等。
二、系统分析
系统主要分为界面操作、xml协议组帧及解析、TCP/IP通讯和串口通讯。
三、架构设计
系统采用分层架构模式,总共分为三层,分别:界面操作层、中间协议转换层、底层通讯层(网络与串口)。
1)界面操作层:实现用户操作,例如菜单选择、终端添加与删除、通讯方式选择;展示xml报文,日志浏览等。
2)协议转换层:由界面上的操作及参数等,转换为相应的xml协议;
3)底层通讯:实现TCP/IP网络发送,口串口发送。
四、详细设计及实现
1)采用C#开发工具。
2)界面上,档案采用树型控件显示各种终端、楼栋档案,并根据选择进行相应下发;功能选择采用菜单形式,每个功能对应一个或多个窗口、子窗口;发送、接收数据帧直接显示在界面上。档案保存到xml格式的文件当中。
3)协议转换的组帧与转换通过一个CPares类来实现,程序调用些类生成的对象来进行XML的组帧及解析。
界面与转换层之间,通过类似JSon协议进行通讯。
4)底层实现通过C# client类与SeriolPort类实现。
网络通讯需要实现多线程,对于每一个socket都单独开辟一个线程进行处理。