基于Android前端和Springboot后台的检测进度管理软件的设计与实现

2021-01-14 09:59黄圣妩李晓琛
广东土木与建筑 2020年12期
关键词:试验室课题组框架

黄圣妩,李晓琛,杨 宙,李 松

(广东省建设工程质量安全检测总站有限公司 广州510500)

0 引言

试验室信息管理系统(LIMS)是试验室管理的核心软件,它负责管理试验室的“人机料法环”等信息。完善和发展LIMS 具有学术意义和社会效益。目前,经过数十年的发展,LIMS 已经在各行各业[1-8]得到了广泛的应用,一些LIMS 强国还制定了详尽的LIMS 功能标准和验收标准[9,10]。还有一些课题使用手持机对LIMS 进行了功能扩展和使用场所扩展,例如在采样过程中使用手持机对样品信息进行加强管理[11]。

本项目甲方单位已有LIMS 系统,但不能满足日益增长的检测进度管理要求,并且不能通过直接采购软件解决,因此委托课题组解决检测进度管理问题,包括原始样品的拆分、流转、养护、同一个样品各检测项目的进度等的管理,并将该管理功能接入既有LIMS 系统。课题组针对这些要求,进行了基于An⁃droid 前端和Springboot 后台的LIMS 检测进度管理软件的设计与实现。本项目的研究内容是:在样品从进入到离开检测中心的过程中,记录接触它的人员、试验室、设备供追溯。

1 相关技术原理

本项目使用C/S架构,在后台使用了Springboot框架、Thymeleaf框架等技术;在前端Android软件使用了JSignature框架、WeUI框架等技术。简而言之,选用的都是JAVA Springboot 家族的技术。选用这套技术的原因是:

⑴Springboot 框架使用自动配置依赖、注解等手段大大简化了开发。以自动配置为例,只需在pom.xml 中进行少量配置,即可自动完成Spring-Data-Jpa、Web、Thymeleaf依赖。

⑵Spring-Data-Jpa 框架与Hibernate 一样,是对JPA(Java Persistence Application Interface)规范的具体实现。Spring-Data-Jpa 的优点是单表操作的速度很快,适合该课题的具体情况。在此类ORM(Object Re⁃lational Mapping)技术中,JAVA 实体类的类名映射到数据库的表名,JAVA 对象名映射到数据库表中的一条记录,JAVA 实体类属性映射到数据库表中的字段,通过JAVA 注解,容易实现数据的持久化和瞬时化,减轻数据库操作的开发工作量。

⑶Thymeleaf框架简化了HTML渲染。

⑷JSignature框架便于实现对手写签名的矢量图捕捉和格式转换。

⑸WeUI 是一个以HTML 和CSS 开发的UI 库,通常用于微信公众号的页面美化,课题组将它用于课题中的Android软件的美化。

2 需求陈述

课题组通过访谈、问卷等获得了用户需求,并通过名词、动词、形容词整理等手段,整理成需求陈述。其中优先级较高的需求是:

⑴为每个试验室、设备、样品提供条码,当样品在各试验室、各设备流转时,可记录样品编号、流转时间,可拍照上传。

⑵记录仪器设备使用前后的状态。

⑶对试验进度进行记录和提醒(见图1)。

图1 检测进度管理的用例Fig.1 Use Case of Testing Progress Management

3 面向对象分析(OOA)

3.1 分析阶段一:需要哪些类

公知常识,本阶段应当发现5 种不同的类,分别是:客观实体、角色、应记录的事件、对象间的相互作用和必须说明的概念。从上一节“需求陈述”中不难发现,本项目可发现的类有:

⑴客观实体:包括设备、试验室、照片、样品、菜单选项、手写签名;

⑵角色:检测员、检测分类负责人、科室主任、系统管理员、手持机、原有LIMS;

⑶应记录的事件:设备使用记录、样品流转、委托;

⑷对象间的相互作用:登录、检测超期提醒;

⑸没有“必须说明的概念”。

限于篇幅,选取上述类中的“设备”类和“设备使用记录”类进行说明,如图2所示。

图2 设备实体类和使用记录实体类Fig.2 Equipment Entity Class and Use Record Entity Class

3.2 分析阶段二:识别类之间的关系

在分析阶段,需要识别类之间的4 个关系,分别是:衍生、组合聚合、实例连接和消息连接。

例如“样品”类和“试验室”类之间的多对多的实例连接(见图3),以及“样品流转控制”类与工具类、线程对象类、使用记录类等类之间的复杂的静态结构(见图4)。

图3 样品和试验室之间的实例连接Fig.3 Instance Connection between Sample Class and Lab Class

图4 样品流转控制类与其他类间的结构Fig.4 Structure between Sample Flow Control Class and Other Classes

4 面向对象设计(OOD)

4.1 设计阶段一:应用架构设计

本项目甲方单位原有一套基于Struts 的LIMS 系统,因此项目将设计成单独的一套系统,通过原有LIMS系统的接口接入(见图5)。

图5 本项目的应用架构Fig.5 Application Architecture of the Project

4.2 设计阶段二:软件架构设计

本项目的后台部分将在Springboot 框架下开发,该框架通常分为“业务逻辑层、服务层、DAO 层”。其中,业务逻辑层包含了控制类和Bean;服务层包含了服务接口和对服务接口的实现;DAO 层包含了DAO接口和实体类。

将分析阶段的成果,即“需要哪些类”中提及的类融入Springboot 框架之后,得到的新的类如图6 所示。图6中,控制类本身不进行逻辑处理,而是调度各种工具类、服务层类进行逻辑处理。本项目的典型的工具类如图7所示。

图6 本项目的Springboot三层架构Fig.6 The Springboot Three Layers Architecture of the Project

图7 负责格式转换的工具类StringUtilFig.7 Tool Class Named StringUtil Responsible for Format Conversion

其他的工具类包括:承担“分页、统计分页后的总页数、统计总记录数”职责的名为FundPage的类、承担“对图片进行Base64 编码、解码”的名为ImageUtil 的类、承担“使用静态方法打印日志,无需每个类中定义日志对象”职责的名为LoggerUtil 的类、承担“对输入的数据加密后返回”职责的名为PswUtil的类。

4.3 设计阶段三:详细设计

详细设计阶段,需要向当前设计成果中加入通信、进程管理等底层支撑环境概念。以及需要将设计成果结合设计模式进行规范化梳理。例如,手持机部分,将采用adapter 设计模式,使前端显示能适应各种变化。

5 应用效果

本项目已投入运营,每一个样品何时由谁从业务室转入试验室、何时由谁从试验室转入制样室、何时由谁从制样室转入养护室、何时由谁从养护室转入某台试验机、该试验机何时由谁使用、使用前后的状态如何、样品上机前后的照片如何、相关人员的手写签名,均可通过手持机记录在LIMS中(见图8)。

图8 运行效果展示Fig.8 Operation Effect Display

6 总结和展望

本项目旨在通过手持机记录样品的全生命期经历,项目课题组通过对安卓前端、Springboot 后台的设计与实现,解决了课题所提出的问题。目前该成果已投入使用,运行状态良好,实现了课题的各项目标。

猜你喜欢
试验室课题组框架
阳城县“耕心微写”课题组
天津大学环境科学与工程学院iSoil课题组
商品混凝土试验室的质量控制管理
框架
DB Living Lab试验室ETCS L3演示试验
广义框架的不相交性
原科技大学新能源开发与应用课题组介绍
交通工程试验室检测的质量控制研究
高速公路工地试验室溯源管理系统研究
关于原点对称的不规则Gabor框架的构造