需求分析和概念原型——工业互联网云端管理系统

一.项目概述

本课题是关于工业物联网设备监控与管理系统服务端的设计与开发。该系统是一个集分级用户管理,设备情况监控,设备控制与数据转发于一体的多边平台。各级用户拥有不同权限,可以对所属的不同设备进行监控或操作。可以做到对设备情况进行远程诊断,远程重启等操作,减少维修人员到现场的次数,大大减少人力成本,方便设备管理。

二.用例分析

需求分析:

从需求中提取用例一般需要经过以下步骤:①从需求表述中找出用例;②描述用例的开始和结束的状态;③对用例按照子系统或者不同方面进行分类;④进一步逐一分析用例和参与者的交互过程。

本项目分为五级用户:

一级用户:设备生产商

二级用户:总代理商

三级用户:分销商

四级用户:某大集团管理员(比如中石油)

五级用户:某个分厂管理员,及其属下的值班员

(所谓“直系”的概念,是指对用户1而言,其他用户是直接由用户1创建,或者其他用户直接创建了用户1)

1.对于一级用户(设备生产商)来说,拥有最大权限,可以创建任意下级用户。其拥有的设备,一般有三种状态——未分配/已分配给直系下级用户/损坏。一级用户可以查看下级用户的同时,查看分配给下级用户的所有设备,还可以处理来自直系下级用户上报的问题设备。

2.对于二级用户(总代理商),是设备生产商与市场的中间人,用于帮助生产商销售设备。二级用户所拥有的设备有三种状态——未分配/已分配给直系下级用户/损坏。二级用户可以查看下级用户拥有哪些设备,可以向一级用户报告有问题设备,还可以处理直系下级用户上报的问题设备。

3.对于三级用户(分销商),从直系上级用户手中购买设备,可以出售给四级/五级用户。三级用户的设备有三种状态——未出售/已出售/损坏。三级用户可以查看直系下级用户以及下级用户拥有的设备,可以向直系上级用户报告有问题设备,还可以处理直系下级用户上报的问题设备。

4.对于四级用户(某大集团),从直系上级用户手中购买设备,并将设备分配给其属下的多个工厂使用。四级用户可以查看旗下每个工厂拥有哪些设备和设备的状态,可以处理五级用户上报的问题设备,可以向直系上级用户上报问题设备。

5.对于五级用户(某大集团旗下某工厂),从直系上级用户得到设备后,便可以添加设备并使用,并向直系上级报告有问题设备。同时,为了保证设备运行正常,可以创建值班员账号,让值班员实时监测设备状态。当值班员观察到设备状态异常时,会提醒五级用户,之后五级用户可以视情况重启或者关闭设备。另外,对于损坏的设备,值班员可以向五级用户上报。

以下为用例图

三.业务分析

根据前述的用例分析,可以发现,六种用户(包括值班员在内)可以分别看做一个类,设备可以看做一个类。

为了方便显示用户对设备可能进行的操作,特地将这些操作剥离出来,代码实现时,针对设备的操作,应包括在用户类中。

UML类图如下:

四.数据模型

通过以上的分析,可以得出以下几张主要数据表。

1.用户表

实际应用中,每一条用户链,所包含的用户层数可能未必一致。
而数据表中的6种用户角色,实际对应的是6种用户等级(可以把值班员等级看做6),
实际的用户链可能有以下几种:
1.设备生产商->代理商->分销商->大集团->工厂管理->值班员(1->2->3->4->5>6)
2.设备生产商->代理商->分销商->工厂管理->值班员(1->2->4->5->6)
3.设备生产商->大集团->工厂管理->值班员(1->4->5->6)
4.设备生产商->工厂管理->值班员(1->5->6)

字段名 类型 备注
id int 数据表id,唯一,主键
username varchar 用户登录名
password varchar 用户登录密码
type tinyint 用户类型
nickname varchar 用户资料名称
address varchar 用户所在地址
create_time timestamp 用户创建时间
login_time timestamp 用户登录时间
parent_id int 创建该用户的上级用户的id
.......... ........ ..............

2.执行器表

由于设备在实际使用前,会经过多级用户的手中,因此需要增加相应字段

字段名 类型 备注
id int 数据表id
device_label varchar 设备自身标识
nickname varchar 设备名称,五级用户添加
discription varchar 对执行器特性的描述
add_time timestamp 生产商添加设备的时间
status tinyint 未分配/异常/已分配/在使用
ownbyUser2 bit 是否分配给了二级用户
user2_id int 二级用户的id
ownbyUser3 bit 是否分配给了三级用户
user3_id int 三级用户的id
ownbyUser4 bit 是否分配给了四级用户
user4_id int 四级用户的id
ownbyUser5 bit 是否分配给了五级用户
user5_id int 五级用户idw
switch_id int 执行器连接的网关的id
link_port int 执行器连接的网关的端口

3.网关表

字段名 类型 备注
id int 数据表id
device_label varchar 设备自身标识
add_time timestamp 生产商添加设备的时间
mac_addr txt 网关自身的mac地址
status tinyint 未分配/异常/已分配/在使用
ownbyUser2 bit 是否分配给了二级用户
user2_id int 二级用户的id
ownbyUser3 bit 是否分配给了三级用户
user3_id int 三级用户的id
ownbyUser4 bit 是否分配给了四级用户
user4_id int 四级用户的id
ownbyUser5 bit 是否分配给了五级用户
user5_id int 五级用户id

4.执行器数据表

与执行器绑定的传感器,会将不同类型的执行器状态参数打包,从网关传到云端服务器,云端服务器可以存储执行器状态参数包,也可以通过解析数据包,向五级用户或者值班员展示设备状态。

字段名 类型 备注
id int 数据表id
data text 传感器发送的数据
device_id int 执行器的id
add_time timestamp 数据发送时间

五.概念原型

概念原型作为一种虚拟的,理想化的软件产品形式,可以通过用例+数据模型的方式得出概念原型。

该项目的概念原型中,有多级的用户参与,操作对象为设备,设备包括执行器和网关,因此需要有对应的数据模型类,包括用户类,设备类,状态数据类。

工作流程:

一般而言,设备在一级四级用户之间,更多的只是分配,真正使用设备(网关+执行器)的是五级用户。对于一级四级用户,对于设备的操作更多是查看自身所有的设备,自己创建的下级用户,以及下级用户所拥有的设备的情况。五级用户如果打算将设备投入使用,会选择某些设备,给设备添加必要工作信息,并连接云端服务器。云端服务器会在设备首次连接时检验其身份是否合法,之后合法设备可以通过绑定在其上的传感器,向云端发送有关设备状态的数据,云端会保存数据。如果五级用户或者值班员想要查看某台设备的运行状态,云端会解析数据,展示在前台页面。如果云端检测到设备状态异常,会向值班员发送异常状态提醒,值班员可以将异常情况向五级用户上报,五级用户可以通过前台页面向设备下发命令,使其停止、重启或执行其他操作。

posted @ 2020-12-03 21:59  paper-plane  阅读(398)  评论(0编辑  收藏  举报