基于小型数字矿山的地学软件开发课程实践

作者: 李章林 张夏林 翁正平 陈麒玉 李国昌 刘刚

基于小型数字矿山的地学软件开发课程实践0

摘  要:数字矿山是地学信息技术的重要研究方向和应用领域。该文以中国地质大学(武汉)空间信息与数字技术专业应用开发实习课程为例,介绍一个以小型数字矿山系统的设计与开发为主题的实践教学完整案例,以及相关的思考,可以为其他高校地学与信息相结合的交叉专业的教学提供一定的参考。

关键词:数字矿山系统;空间信息与数字技术;地质信息系统;教学实践;项目教学法

中图分类号:G642          文献标志码:A                  文章编号:2096-000X(2024)35-0133-04

Abstract: Digital mine is a vital geo informatics technology research direction and application field. Taking the "Application Development Internship Course" of Spatial Information and Digital Technology at China University of Geosciences (Wuhan) as an example, this paper introduces a complete case of practical teaching process focused on the design and development of a small-scale digital mine system, along with relevant reflections. The study can provide a reference for teaching interdisciplinary and specialized fields that combine geoscience with information technology in other institutions.

Keywords: Digital Mine System; spatial information and digital technology; geological information system; teaching practice; project teaching methods

中国地质大学(武汉)空间信息与数字技术本科专业以地学和计算机科学的交叉融合为主要特色[1-2]。应用开发实习为该专业学生大三阶段一门重要的综合性专业实践课程[2-3],其目的是让学生在学完大类平台课、专业基础课和专业主干课等课程后(进入毕业设计前),对所学知识有一次综合应用和充分实践的机会,对于深化学生理解、掌握及独立开发空间信息系统的能力具有重要价值。

数字矿山[4-5]是地学信息技术的重要研究方向和应用领域。它是存储于网络上的、能供多用户访问和应用的一种虚拟矿山,是真实矿山整体及其勘探生产和经营过程的全面数字化、信息化和可视化。同时,数字矿山系统的开发也需要用到多门专业课程的知识,例如面向对象程序设计、数据结构、算法设计、综合勘查学、地学数据分析与挖掘、三维可视化与过程模拟、地质信息系统工程等。

因此,将数字矿山选定为应用开发实习的主题,不仅能够精准对接行业需求,还能全面检验并提升学生的综合能力,为学生将来在地学信息技术领域的职业发展奠定坚实基础。

一  教学理念与目标

应用开发实习课程秉承“以学生为核心,激发主观能动性”的教育理念,结合跨学科专业交叉融合、教学与科研实践融合、创新创业与专业教育融合的“三融合”人才培养模式[6],致力于实现以下教学目标:①理解地矿勘查信息化,掌握在小型数字矿山系统中集成地质数据采集、管理、图件生成、三维建模及地质分析等功能,估算矿山储量。②确保系统安全与稳定,保障开发的地质信息系统具备高容错性、稳定性和数据安全性。③精通项目管理与开发,熟悉软件开发流程,能独立或团队协作完成地质信息系统开发。④跨学科综合决策,融合多学科知识,为矿山企业设计个性化数字矿山解决方案,实现高效管理。⑤三维地质建模与分析,利用三维建模、空间分析及模拟技术,精准揭示矿山地质特征。⑥高效沟通与汇报,掌握项目需求分析与成果汇报技巧,编制高质量设计文档,并有效与甲方沟通。

二  教学方法与内容

本课程围绕数字矿山系统开发,采用“模拟项目”教学法,以学生为主体,自发组建项目组,指导老师扮演“甲方”及“质量管理经理”角色,通过虚拟项目研发,综合提升学生专业技能、团队协作及科研能力。

实习要求与项目组织:①明确实习形式、任务、考核标准及流程。②学习软件生命周期管理、项目管理技巧、团队协作与沟通方法。③选举项目经理,组建高效研发团队,制定项目合同。

教学方法与手段:①理论讲授与案例分析相结合,通过理论讲授奠定知识基础,结合案例分析加深理解。②小组讨论与合作学习,促进学生之间的交流与合作,共同解决问题。③实践操作与项目驱动,通过实际项目操作,提升学生的动手能力和问题解决能力。④反思总结与持续改进,鼓励学生反思学习过程,总结经验教训,不断优化学习方法。

教学内容主要包括:①三维地学信息系统平台QuantyView的二次开发培训;②需求分析及评审;③概要设计及评审;④详细设计及评审;⑤系统实现及测试;⑥文档编写;⑦系统部署与维护;⑧项目验收。

通过这一系列教学环节,学生不仅能够掌握地质信息系统开发的全流程技能,还能在项目管理、团队协作、科研方法等方面得到全面提升。

三  教学案例

(一)  教学目标设定

本教学案例将通过“小型数字矿山系统研发”项目,全方位提升学生的软件开发技能与地质信息学领域的知识综合应用能力。强调理论知识与实践操作的紧密结合,促进学生将课堂所学转化为解决实际问题的能力。通过本课程的学习,学生将不仅能够熟练掌握从需求分析、系统设计到文档编写的软件开发全流程,还能深入理解地质数据的特点、三维建模技术的前沿应用、数据分析方法的选择与实现,以及移动应用开发在地质勘探中的独特价值。同时,通过项目驱动的教学方式,激发学生对专业知识的兴趣,学生将学会如何在复杂工程问题中进行协调资源与沟通合作,培养其解决实际问题的能力和团队协作精神(图1)。

图1  不同阶段的教学任务和目标

(二)  教学内容组织

1  案例引入与背景分析

基础理论讲解:在介绍数字矿山概念之前,带领学生回顾地质学概论、地质信息系统的方法原理及软件开发基础等相关知识,构建完整的基础知识框架。结合国内外数字矿山成功案例,让学生直观感受数字矿山技术的先进性与实用性。同时,探讨数字矿山对现代矿业转型升级的重要意义,增强学生的职业认同感和学习动力。

案例背景分析:利用多媒体手段生动展示“小型数字矿山系统”项目的预期功能和效果,讲解数字矿山技术在现代矿山开采和生产中的应用价值,如提高矿产资源利用效率、降低开采风险、优化矿山生产管理等,激发学生的探索欲和求知欲。

分组讨论:将学生分为若干小组,讨论数字矿山系统可能涉及的关键技术和功能需求,为后续需求分析做准备。

2  需求分析教学

理论讲解:详细讲解软件需求分析的基本方法,包括用户调研、业务流程分析、功能点提炼等。

模拟调研:指导学生通过问卷调查、访谈等方式收集用户需求,分组对“甲方”进行调研,绘制预期用户业务流程图(图2);模拟需求变更场景,教授学生如何有效处理需求变更情况,保持项目进度的稳定。

功能要点提炼:基于调研结果,引导学生提炼系统应具备的基本功能点(如矿山三维地表模型的生成与直观展示、矿体和地层的三维精细化建模、距离幂次反比品位估值等),并讨论其实现方法和思路。引导学生运用KANO模型、四象限法则等工具对需求进行分类和优先级排序,确保项目资源的高效利用。

技术方案选型:引导学生讨论并确定系统采用的核心开发语言(C++)、地学信息系统平台(QuantyView)、数据库(Access和MongoDB)等,理解技术选型对系统性能的影响。

需求文档编写:指导学生分组编写详细的需求规格说明书,包括功能需求、非功能需求、约束条件等,为后续的系统设计开发工作提供依据。

(三)  系统设计教学

设计原则讲解:介绍系统设计的基本原则,如模块化、可扩展性、可维护性等。教授学生使用UML(统一建模语言)等设计工具进行系统设计,绘制类图、时序图等,提高设计文档的规范性和可读性。

模块划分:在理解、掌握系统基本设计原则的基础上,引导学生基于矿山用户的业务流程,将系统划分为采集识别、三维建模、数据分析和数据管理四个模块(图3)。

采集识别模块:讲解Android平台应用开发基础,以及矿石岩性自动识别技术的原理与应用。

三维建模模块:介绍三维建模技术,特别是矿山三维地表模型、钻孔数据三维模型等的构建方法。

数据分析模块:讲解距离幂次反比储量估算、数据智能分析与挖掘等高级数据分析技术。

数据管理模块:强调大数据管理的重要性,介绍数据库设计、数据安全与高效检索等技术。

系统框架构建:引导学生理解各模块间的相互关系与数据流,并绘制各模块的主要功能及相互关系(图4)。例如:野外数据采集模块和数据管理模块主要负责矿山数据的搜集与综合管理,三维建模模块和地学数据分析模块分别负责关键数据模型的三维可视化和深度分析。

图4  系统主要功能模板及相互关系

(四)  编码与测试教学

编码规范要求:在编码开始前,向学生强调编码规范的重要性,如命名规范、注释规范、代码风格等,确保代码的可读性和可维护性。

任务分配:根据学生兴趣与专长,分配各模块的开发任务。

编码指导:提供必要的编码指导与技术支持,鼓励学生采用敏捷开发方法,迭代式推进课程项目。

系统集成与测试:介绍持续集成和自动化测试的概念、方法,以及实现代码自动化构建和测试的常用工具,指导学生进行单元测试、集成测试和用户验收测试,提高开发效率和质量。

(五)  项目成果展示教学

文档规范与要求:向学生讲解项目文档编写的规范和要求,如文档的结构、内容、格式等,确保文档的完整性和规范性。

文档编写:要求学生编写详细的项目文档,包括需求分析报告、设计文档、用户手册等。

项目展示:组织项目答辩会,邀请小米、金山、科大讯飞等知名企业的专家参与,要求学生团队以PPT、视频和现场操作演示等形式展示项目成果,分享开发经验与教训,并接受教师和同学的提问和点评。

总结反思:鼓励学生积极总结项目过程中的收获与不足,提出改进建议,为未来的学习和工作积累经验。

四  教学成果及分析

根据上述教学内容和教学目标,学生采用C++、Java及Python三种编程语言进行了系统实现。图5展示的是系统在岩性识别与综合数据管理、三维可视化建模、以及数据分析与挖掘方面的典型界面及成果。基本达到了预期效果。

(a)  岩性识别与综合数据管理

经典小说推荐

杂志订阅