1 古建筑综合管理平台设计与实现
为应对古建筑文化传播不充分、保护措施不精确及管理不规范等问题,本章节旨在设计并实施一款古建筑综合管理平台。本文将详尽阐述该平台的功能特性、设计流程以及测试成果。此平台的最终建成预计将极大地丰富游客对本地古建筑文化的认知,同时协助研究人员精准掌握不同古建筑类型及其相应的维修保护手段,并便捷地进行古建筑档案管理,从而在文化和科研两大领域实现古建筑的便捷管理。
1.1 系统需求分析
系统需求分析是软件开发生命周期中的一项关键活动,它涉及对用户需求的搜集、分析和文档化,以便为系统设计和实现提供清晰的指南。为实现符合预期目标和现实需求的古建筑综合管理平台,本研究根据软件工程的系统开发规范对平台进行了功能性需求分析以及非功能性需求分析。
1.1.1 功能性需求分析
功能性需求分析是软件工程中对系统应该“做什么”的详细考察。其关注的是系统需要提供哪些功能以满足用户需求、商业需求或其他利益相关者的需求。功能性需求描述了系统的行为、操作和任务。本平台功能性需求分析如下:
(1) 注册登录功能。用户在使用平台前需要进行账号注册,并登录才能使用相应的平台功能。用户在注册时需要确认注册身份,注册身份包括研究员用户和游客用户,研究员用户主要有古建筑信息管理、古建筑修缮与保护相关功能,游客用户主要涉及古建筑文化宣传功能。此外,还有管理员用户,管理员身份无法注册,只能通过管理员设置,管理员用户可以使用包括权限管理在内的所有平台功能。
(2) 权限管理功能。当用户登录平台后,根据用户身份的不同应当展示与之相对应的功能模块界面。该过程由管理员通过权限管理实现,当用户注册账号后,该用户拥有默认权限,用户只能使用权限内的功能,但是管理员可以通过权限管理功能对其他用户的功能权限进行修改,以方便对用户的管理。
(3) 古建筑信息管理功能。用户通过该功能实现对古建筑信息的管理,具体功能包括所记录古建筑的位置、年代、材质、保存程度等信息的增加、删除、修改以及查询,该功能主要面向研究员用户。
(4) 古建筑文化宣传功能。该功能主要向游客用户提供古建筑识别功能,在显示所识别的古建筑种类的同时,还应该显示该古建筑的相关历史文化背景介绍,并在此功能之外设置周边旅游景点介绍、景点导航等功能。
(5) 古建筑修缮与保护功能。该功能的核心是古建筑识别功能,如果用户是研究员身份,在完成古建筑识别后会对所识别大的古建筑的材质、建筑结构、修缮保护方法、相关专家联系方式等进行展示。
最后本平台在用户层面进行相关功能性需求分析,管理员用户的主要功能权限包括权限管理、古建筑信息管理、古建筑文化宣传、古建筑修缮与保护。游客用户所使用的功能主要和古建筑识别以及文化宣传有关。对于研究员用户来说,主要功能涉及古建筑修缮与保护功能。管理员用户、游客用户以及研究员用户用例图如图所示。
1.1.2 非功能性需求分析
非功能性需求定义了系统的运行标准,包括并发性、安全性、可靠性、可用性、可维护性和其他重要的质量属性。
(1) 并发性:为了满足多用户并发使用的需求,尤其是在使用识别功能时,本平台需要保证能够及时且准确地向用户反馈识别结果。具体标准如:平台应能处理至少100名用户同时在线,且识别功能的响应时间不超过2秒。
(2) 安全性:在安全性层面,本平台将采取多重措施确保用户信息的安全性,并防止古建筑数据被恶意篡改或删除。实施定期的安全审计,采用加密技术保护用户数据,实现身份验证和访问控制,确保数据传输和存储的安全。
(3) 可靠性:就可靠性而言,通过定义系统的正常运行时间,如99.9%的时间内在线可用,并制定故障恢复计划,如采用数据备份和故障切换机制以确保数据完整性和系统可靠性,以确保所有功能准确无误地执行操作,以及在发生系统故障时,数据能得到保全且能迅速恢复。
(4) 可用性:关于可用性,平台将提供直观易操作的用户界面,确保用户能够轻松理解并使用。操作界面简洁直观,支持多语言,确保用户在5分钟内能上手基本功能。
(5) 可维护性:在可维护性方面,平台代码将遵循清晰的架构设计,以便于及时的问题排查和解决。规定代码的编写标准,使用模块化设计和文档详细记录,以支持快速的问题诊断和修复,保证系统能适应未来的变化和需求。确保这些需求具体、明确且可度量,便于在实际开发和维护中进行验证和执行。
1.2 系统设计
系统设计主要分为两个子阶段:总体设计和详细设计,这两个阶段共同构成了系统设计的完整框架。总体设计,也称为高层设计,主要聚焦于系统的整体架构和组件之间的关系,设定系统的基本结构和通信流程,以确保系统的核心功能和期望效果能够被实现。详细设计则进一步深入到每个组件的内部设计中,具体到类的定义、方法的实现、数据的详细处理过程以及接口的具体实现,目的是确保每个系统组件能够精准地完成其任务,同时也满足非功能性需求,如安全性、可维护性等。这种分阶段的设计方法有助于提高系统设计的效率和质量,使系统开发过程更加有序和可控。
1.2.1 系统总体设计
古建筑综合管理平台在功能方面主要分为四个模块,角色权限管理模块、古建筑信息管理模块、古建筑文化宣传模块以及古建筑修缮与保护模块。其中,角色权限管理模块主要负责用户权限设置,通过用户权限将整个平台功能关联起来。古建筑信息管理模块和古建筑修缮与保护模块通常面向研究员用户,以辅助研究员进行古建筑信息的规范化整理以及古建筑的保护。古建筑文化宣传模块主要涉及用户所在地的景点介绍以及古建筑历史文化的宣传,游客用户通过该模块了解古建筑文化,在获得相关权限后也可以进行古建筑信息管理。
平台各个功能模块之间以并列关系运行,模块内又包含不同的子功能。权限管理模块是一个通用功能,主要界面由用户权限管理表格及相关操作按钮组成,通过对用户权限的添加、删除以及修改来完成对用户权限的管理,同时权限管理还应该包含对用户相关信息的修改、删除等操作,以方便对用户信息的管理。古建筑信息管理模块由古建筑数据集管理以及古建筑信息统计两个子功能组成,古建筑数据集管理主要是对已经采集的古建筑数据集进行相关分类和整理,通过统计图表展示各个种类数据集的数量以方便后续进行模型训练使用,古建筑信息统计功能是对现存已登记的古建筑的详细信息的增删改查操作,其中包括对古建筑的建筑风格、发源地、建造年代等信息。古建筑文化宣传功能包括古建筑识别、古建筑文化详细介绍以及相关景点介绍三个子功能,古建筑文化详细介绍是根据古建筑识别结果进行动态展示的,相关景点介绍是对古建筑所在地的民风民俗文化进行扩展介绍,以方便游客对古建筑文化进行全方位的了解。古建筑修缮与保护功能由古建筑识别、古建筑修缮与保护方法、相关研究及专家联系三个子功能构成,首先通过古建筑识别确定古建筑种类,之后通过种类确定古建筑修缮与保护方法,并且可以通过相关研究和专家联系获得更专业的指导,在该功能模块可以跳转至古建筑信息管理模块,对已进行修缮的古建筑进行登记。平台功能模块图如图所示。
从平台的整体功能来看,古建筑综合管理平台主要以古建筑识别功能为核心进行构建,此功能为其他衍生功能提供基础数据和支持。基于古建筑识别,平台进一步拓展为古建筑文化推广以及古建筑修缮与保护功能,确保文化遗产得到妥善管理和维护。信息管理功能充当数据枢纽,保障各项功能有效运行,并为研究和分析古建筑提供数据支持。权限管理功能为平台提供了用户权限的划分,确保了操作的安全性和合理性,使不同用户根据他们的权限和角色使用相应的功能,这对维护系统秩序和保护敏感信息至关重要。平台的整体架构图如图所示。
1.2.2 系统详细设计
古建筑综合管理平台采用了前后端分离的架构,其中前端和后端部分独立开发、设计并运行。这种模式允许前端和后端通过明确定义的接口进行交互。前端负责用户界面和用户操作,后端负责处理业务逻辑、数据库交互以及总体性能等方面。本平台的前端技术栈采用了较为成熟的Vue框架及其相关的样式库进行开发,后端技术栈使用了Spring Boot框架、Mybatis和Mysql。
Vue框架的核心优势在于其响应式的数据绑定和组件化的架构,这不仅有助于高效地开发出动态的用户界面,也使应用的维护更加简单。同时,Vue的轻量级特性不会对页面加载时间造成延迟,这对于性能敏感的应用来说具有显著的优势。此外,Vue所提供的工具生态系统,包括Vue CLI、Vuex和Vue Router,支持构建大型且功能丰富的单页应用程序。
对于平台后端开发来说,使用Spring Boot、Mybatis及MySQL作为开发技术栈,也拥有诸多优势。Spring Boot能够极大地简化整体架构搭建以及开发过程。通过自动配置,开发者可以避免繁琐的配置工作,快速启动和运行应用程序。同时,Spring Boot内嵌的web服务器简化了部署流程,无需单独部署war文件。Mybatis则作为一个SQL映射框架,允许开发者直接编写SQL语句,同时提供了动态SQL能力,使数据库操作更加灵活,同时也更容易性能优化。Mybatis允许更细致地控制SQL执行细节,而且与Spring Boot集成良好,可以提供声明式事务管理。MySQL提供了可靠且稳定的数据库方法,并支持大型数据库和高并发的数据库访问。综合这三者,可以构建出高效、稳定、易于维护和扩展的后端服务。
本平台在整体架构的细节上,Spring Boot框架会定义一系列的API接口,这些接口通过Controller类中的方法来处理不同的HTTP请求。后端在接收到请求后,会利用Service层处理业务逻辑,并使用Mybatis与数据库交互来查询或持久化数据。在处理完业务逻辑和数据存储后,Spring Boot会创建DTOs(数据传输对象)来封装返回给前端的数据,并且会将数据对象序列化为JSON格式的数据,然后发送给前端。同样的,前端发送到后端的数据在到达Controller前也会被自动反序列化为Java对象。在前端方面,Vue框架使用Axios来获取后端数据,一旦Vue框架接收到来自Spring Boot后端的响应,它将解析数据并在用户界面中相应地展示。
对于各个功能模块的设计细节,具体实现逻辑如下:
(1) 注册登录功能。对于注册功能,先创建一个RESTful API端点,然后使用@PostMapping注解来处理POST请求。在请求体中,使用@RequestBody注解将用户提交的数据作为参数传递给处理方法。首先,需要验证表单数据的有效性,如检查是否缺少必要字段、验证格式、密码强度等。如果验证失败,会返回一个错误响应,提示用户输入有效的数据。之后,要检查用户名是否已存在,调用一个方法接收用户名作为参数,在数据库中查询是否已存在相同的用户名,如果存在,则返回一个错误响应。接下来,使用BCrypt.hashpw方法将密码和随机生成的盐值作为参数,生成加密后的密码字符串对密码进行加密,以确保密码在存储时不是明文。最后,调用createUser方法,将用户数据保存到数据库中。在这个过程中,会创建一个User对象,其中包含用户名和加密后的密码,该对象会作为参数传递给createUser方法。对于登录功能,也会通过创建RESTful API端点来处理POST请求。首先,要验证用户输入的用户名和密码是否有效。该过程通过调用authenticateUser方法进行验证,该方法接收用户名和密码作为参数,并在数据库中查找匹配的用户记录,如果找到匹配记录,则密码比对成功,之后生成一个令牌,用于后续请求的身份验证。最后,将令牌和登录成功的消息返回给前端。
(2) 权限管理功能。在实现该功能时,首先要定义好权限管理的实体,实体包括角色实体Role、权限实体Permission以及用户实体User,之后定义两个实体类关系映射,实现角色到用户和权限到角色的映射。对于权限管理方面,后端通过数据访问层实现对权限数据、角色数据以及用户数据的增加、修改等操作,前端则通过使用动态路由通过验证登录后后端返回的用户信息展示对应权限的功能页面。
(3) 古建筑信息管理功能。对于古建筑信息管理功能,首先要定义古建筑实体类,该实体类包含古建筑名称、年代、材质、文化简介等属性,之后,创建一个扩展JpaRepository的接口进行数据访问,最后,在服务层定义相关操作方法,在控制层定义API端口。在该功能中,Controller类通过HTTP请求与客户端交互,并调用Service类中定义的方法来处理业务逻辑。Service类再通过Repository接口与数据库进行交互,完成古建筑信息的增删改查等操作。
(4) 古建筑文化宣传功能。该功能使用了Element UI的upload组件进行图片上传,,图片上传后后端通过ProcessBuilder启动Python进程,并将图像数据通过管道直接传递给Python进程。Python脚本完成处理后,将结果写入stdout并输出,Java服务组件捕获输出结果并解析,以标准化的方式返回给Spring Boot控制器,并最终呈现给用户。对于文化介绍以及景点推荐功能则根据返回结果来确定不同的接口向后端请求相应的数据。
(5) 古建筑修缮保护功能。该功能的图像识别功能的实现与古建筑文化宣传功能相同,修缮与保护建议也是根据识别结果来向后端发起相应的请求来获取。
1.3 系统效果
1.3.1 角色权限管理模块
在角色权限管理模块中,主要进行用户的权限管理,页面详情如图所示。
1.3.2 古建筑信息管理模块
在古建筑数据管理模块中,对平台所收集的古建筑信息进行了系统的分类管理,其中包括图像收集管理、数据的增加、删除、修改、查找等操作。页面详情如图所示。
1.3.3 古建筑文化推广模块
该模块属于游客用户权限下的功能模块,游客用户将古建筑图像进行上传,了解该建筑所对应的历史文化背景。页面详情如图所示。
1.3.4 古建筑修缮保护模块
研究员用户使用该模块进行古建筑修缮和保护相关方法和建议的获取。页面详情如图所示。
1.4 系统测试
系统测试是软件测试的一个等级,涵盖了对整个应用程序进行全面测试的过程,以验证其是否满足指定的需求并且能够在各种条件下正常运行。平台开发完成后,将对平台的功能和性能进行相应的测试。
平台功能测试主要涉及用户注册与登录、数据管理、图像识别三个方面。在用户注册时,通过使用不同类型的输入,如边界值和错误输入等,以验证注册过程的弹性和正确性。用户登录需要确保系统能够识别已注册用户,并拒绝无效的登录尝试。数据管理时要保证各项数据在处理后能准确展示。图像识别则通过传入不同的图像验证识别的准确率以及相关联的内容展示。功能测试测试用例如图所示。根据测试结果,平台的各项功能运行正常可以进行实际的应用。
在性能方面,使用JMerer模拟多个用户同时使用平台,以检查系统在高负载下的稳定性和响应能力,测试界面及结果如图所示。
由测试结果可知,该平台在古建筑识别这个核心功能上具有较高的识别准确率,在其他功能方面,用户可以正常登录管理古建筑数据,并且对于文化推广以及古建筑修缮相关功能都能够达到预期的使用目标。之后,该平台还需要在兼容性以及安全性上进行改进,以确保该平台能够进行实际的应用。
1.5 本章小结
本章对古建筑综合管理平台的设计、实现以及测试进行了详细的说明,首先根据显示需求,对该平台设计了四个主要功能模块,权限管理、古建筑信息管理、文化推广以及古建筑修缮和保护,通过功能性和非功能性的系统需求分析,确定了各个功能模块的具体功能及模块之间的联系,并针对不同的用户设计了对应的权限,使平台能够精准发挥其功能。之后,对平台各功能的具体开发过程进行了介绍,本平台使用了前后端分离的技术,主要是用了Java和Vue进行开发。最后,对平台的功能和性能进行了测试,测试结果显示本平台运行良好,能够进行实际的应用。本平台完成后对于古建筑的文化宣传与保护具有重要的意义。