基于定位推断系统的需求分析与建模

0.前言

文章主要围绕着”基于机器学习的定位推断系统”进行简单的分析,进行用例建模和业务领域建模,以及数据建模,最终形成概念模型。由于该系统基于机器学习并采用监督学习的方式,所以整个过程主要分为三个阶段:数据获取和处理阶段、训练以及改进阶段和推断阶段。

1.用例建模

1.1需求分析

阶段一:数据获取和处理阶段,该阶段首先需要进行数据的收集和上传。用户在移动过程中通过手机获取到部署在任意场景下的多个蓝牙信号广播装置所发出的蓝牙信号,通过对多个蓝牙信号的整合后,将当前获取到的蓝牙信号和当前GPS上传至服务器,管理员制定过滤和整合标准,再对数据进行一次过滤和整合,形成一条可能有用的数据。

阶段二:训练以及改进阶段。待数据收集完毕,由管理员对整合的数据进行可视化分析和相关性研究后,选择衡量成功的标准并确定评估方法和损失函数、准备数据,该过程主要包括:数据集的划分以及对数据进行清洗和特征选择。最后选择可用的模型并训练。整个训练阶段中,需要根据模型的表现来不断调整超参,选择最佳超参数,最后选择有希望的模型进行融合,评估模型的泛化标准。

阶段三:推断阶段。通过用户在移动过程中蓝牙信号的变化,模型推测出用户的位置,并使用可视化显示出用户轨迹。

a)从需求中找到用例

系统参与者:用户,管理员

业务用例:扫描蓝牙信号并获取GPS、上传数据、过滤整合数据、分析数据、清洗数据、选择特征、选择模型、训练(调整超参)、推断位置、显示轨迹

b)描述用例开始和结束的状态,用TUCBW和TUCEW表示高层用例

用例 TUCBW TUCEW
扫描蓝牙信号并获取GPS 用户打开app,系统自动扫描和获取 成功获取到数据
上传数据 时间片到或者用户关闭APP 上传数据成功
过滤整合数据 管理员选择过滤整合数据 得到过滤后的数据
分析数据 管理员选择“可视化分析”,“相关性分析” 显示可视化后的数据
清洗数据 管理员对数据进行填充、归一化等操作 得到清洗过后的数据
选择特征 管理员对特征进行选择 得到处理后的数据
选择模型 管理员对模型进行选择 得到备选模型
训练,调整超参 管理员训练数据、调整超参 得到具有最佳超参的模型
推断位置 管理员上传数据 得到预测结果
显示轨迹 得到预测结果 可视化预测结果

c)画出用例图

d)进一步逐一分析用例与参与者的详细交互过程(举例说明)

扫描蓝牙信号并获取GPS用例:

Actor:用户 System
1.用户打开app 2.自动获取到扫描和定位权限
  3.扫描特定蓝牙信号
  4.获取当前位置GPS
5.显示成功获取到的数据  

推断位置用例:

Acotr:用户 System
1.管理员填入数据 2.系统调用事先训练好的模型
  3.得到预测结果
4.显示预测结果  

2.业务领域建模

业务领域建模的基本步骤:

第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
第四步,将结果用 UML 类图画出来。

2.1系统中包含的类,及其属性和方法

Person类(抽象类):

属性:id, root

方法:get()\set()方法

User:

  属性:id, root

  方法:set()\get()  openApp() 

Admin:

  属性:id, root

  方法:set()\get()  dataScreening()   analysis()  clean()  selectCh()  selectModel()  train()  inference()

User_Data:

  属性:dataid, userid

  方法:set()\get()

Datas:

  属性:mac  rssi  rssi_1m  longitude_gps  latitude_gps  timestamp  dataid

  方法:set()\get()

Models:

  属性:model accuracy modelid

  方法:set()\get()

2.2类图

2.3数据模型

    对业务领域建模后,继续分析其数据模型。

    Person\User\Admin类:

字段 类型 含义 备注
id string 用户唯一标识 主键
root string 权限 普通用户/管理员

    User_Data关联类:

字段 类型 含义 备注
userid string 用户id 主键
dataid string 数据id 主键

    Datas类:

字段 类型 含义 备注
dataid string 数据id 主键
mac string 蓝牙mac  
rssi double 信号强度  
rssi_1m double 1m处的信号强度  
longitude_gps long 精度  
latitude_gps long 维度  
timestamp long 时间戳  

    Models类:

字段 类型 含义 备注
modelid string 模型标识 主键
model / 模型文件  
accuracy double 模型准确度  

3.概念原型

  概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论,概念原型是一种虚拟的、理想化的软件产品形式。

  通过建立系统的用例模型和数据模型,总结该系统的概念原型,在数据获取和处理阶段,用户在移动过程中通过手机获取到部署在任意场景下的多个蓝牙信号广播装置所发出的蓝牙信号,通过对多个蓝牙信号的整合后,将当前获取到的蓝牙信号和当前GPS上传至服务器,管理员制定过滤和整合标准,再对数据进行一次过滤和整合,形成一条可能有用的数据。训练以及改进阶段,待数据收集完毕,由管理员对整合的数据进行可视化分析和相关性研究后,选择衡量成功的标准并确定评估方法和损失函数、准备数据,该过程主要包括:数据集的划分以及对数据进行清洗和特征选择,最后选择可用的模型并训练。推断阶段,通过用户在移动过程中蓝牙信号的变化,模型推测出用户的位置,并使用可视化显示出用户轨迹。

4.总结

    这一部分内容提供了一种从需求分析到软件设计的基本建模方法,通过对该部分的学习找到了对工程实践项目认识的不足,同时由于项目的原因,功能比较单一,对分析也造成了一定的困难,更能意识到从需求分析、用例建模、业务领域建模、数据建模,到最后形成概念原型,需要一步一个脚印,逐个去识别和分析,为之后的开发阶段筑牢根基。


 参考:

  从需求分析到软件设计

posted @ 2020-12-06 00:23  Dem0_zhu  阅读(160)  评论(0编辑  收藏  举报